我试图从外部调用一个在窗口对象中定义的函数,但它会引发错误。
window.vcm = (function() {
"use strict";
function red(){
alert('red');
}
});
vcm.red();//Error at this line...
我是 JavaScript 中 OOPS 的新手。有人可以告诉我如何在这里调用这个函数。
我试图从外部调用一个在窗口对象中定义的函数,但它会引发错误。
window.vcm = (function() {
"use strict";
function red(){
alert('red');
}
});
vcm.red();//Error at this line...
我是 JavaScript 中 OOPS 的新手。有人可以告诉我如何在这里调用这个函数。
的值vcm
没有red
属性。
也许你的意思是这个,其中vcm
是一个对象,它具有一个red
你可以调用的函数的属性:
window.vcm = {
red: function(){
"use strict";
alert('red');
}
};
它本身也有可能(尽管您在实践中不会看到)vcm
它本身是一个函数,并且它具有一个red
作为函数的属性:
window.vcm = (function() {
"use strict";
var vcm = function() { alert("vcm"); }
vcm.red = function() { alert('vcm.red'); };
return vcm;
})();
vcm(); // "vcm"
vcm.red(); // "vcm.red"
有两种方法。
方法1:
window.vcm = {
red: function (){
"use strict";
alert('red');
}
};
vcm.red();
方法2:
window.vcm = (function() {
"use strict";
this.red = function(){
alert('red');
}
});
var x = new vcm();
x.red();
red
仅存在于您分配给的功能内,window.vcm
并且仅在执行该功能时存在。此外,函数没有属性red
。
考虑这个更简单的例子:
function foo() {
function bar() {}
}
bar(); // will throw an error
调用bar
将引发错误,因为bar
未在调用它的范围内定义。
您似乎想将一个对象分配给window.vcm
,它具有一个属性red
:
window.vcm = {
red: function (){
"use strict";
alert('red');
}
};
在这里,我使用对象文字来创建具有属性的对象red
。
更多信息: