自调用Javascript函数
我正在使用一段代码,其中包含以下Javascript函数。我已经读了一篇文章,其中有一些解释,但对于这段代码是如何工作的,我仍然有点困惑 代码如下:自调用Javascript函数,javascript,Javascript,我正在使用一段代码,其中包含以下Javascript函数。我已经读了一篇文章,其中有一些解释,但对于这段代码是如何工作的,我仍然有点困惑 代码如下: messageBus = (function() { var messages = {}; function publish(name, data) { //does some stuff } function subscribe(name, callback) { //does
messageBus = (function() {
var messages = {};
function publish(name, data) {
//does some stuff
}
function subscribe(name, callback) {
//does some stuff
}
function unsubscribe(name, callback) {
//does some stuff
}
return {
publish:publish,
subscribe:subscribe,
unsubscribe:unsubscribe
};
})();
然后被称为
messageBus.publish("Submit");
这是什么意思
return {
publish:publish,
subscribe:subscribe,
unsubscribe:unsubscribe
};
代码do?
{}
中的位do是一个对象文本
{
foo: bar
}
…是一个对象文字,其属性名为“foo”,其值等于变量“bar”的值
该函数返回一个具有三个属性的对象,其中值是其中定义的函数。因为这三个内部函数(
publish
、subscribe
和unsubscribe
)是在另一个函数中声明的,所以它们不会存在于该外部函数之外的任何位置
通过返回具有这三个属性的{…}
对象,您实际上是在messageBus
中提供了一个“公共”API-messageBus
将等于具有这三个函数属性的对象,因此可以从外部范围调用它们
如果对象未返回,则无法从外部作用域的任何位置调用这三个内部函数。它返回一个具有三个属性的对象
publish
、subscribe
和unsubscribe
。看,它返回一个对象。您可以执行该代码并查看控制台中的messageBus。好的,谢谢,我现在明白了,谢谢,我现在明白了