我想在CoreTeamObject中添加另一个名为myFunction()的函数,该函数在匿名函数中声明为local。这可能吗?
!function ($) {
var CoreTeamObject = function () {
var coreTeamVar1; // ...
this.someState = false; // ...
coreTeamFunction: function () { /* ... */ }
};
}(window.jQuery);
通常情况下,我会使用原型,例如:
CoreTeamObject.prototype.myFunction = function(){
return
};
但我根本不知道如何访问该对象。
答案 0 :(得分:1)
你根本做不到。函数中的变量是私有,无法从外部访问。
! function () {
var foo = 1;
}();
// Calling `foo` will throw a referenceError here.
// It doesn't even work with classes...
var foo = function () {
var bar = 2;
};
var bax = new foo();
// `bax.bar` doesn't exist.
但是,有一些解决方法。你可以将它们存储在一个全局变量中(不好主意):
! function (w) {
w.foo = 3;
}(window);
// window.foo = 3
// foo = 3
或者如果你可以把它改写成一个类:
var foo = function () {
this.bar = 4;
};
var bax = new foo();
// bax.bar = 4
我希望这会有所帮助。