Javascript 如何在匿名函数中扩展对象

Javascript 如何在匿名函数中扩展对象,javascript,function,client,anonymous-function,inheritance,Javascript,Function,Client,Anonymous Function,Inheritance,我想将另一个名为myFunction()的函数添加到CoreTeamObject中,该对象在匿名函数中声明为local。这可能吗 !function ($) { var CoreTeamObject = function () { var coreTeamVar1; // ... this.someState = false; // ... coreTeamFunction: function () { /* ... */ }

我想将另一个名为myFunction()的函数添加到CoreTeamObject中,该对象在匿名函数中声明为local。这可能吗

!function ($) {
    var CoreTeamObject = function () {
        var coreTeamVar1;   // ...
        this.someState = false;   // ...
        coreTeamFunction: function () { /* ... */ }
    };
}(window.jQuery);
通常,我会将原型与以下内容结合使用:

CoreTeamObject.prototype.myFunction = function(){ 
  return 
}; 

但我根本不知道如何访问该对象。

你根本不知道。函数中的变量是私有的,不能从外部访问

! 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.
然而,有一些变通办法。您可以将它们存储在一个全局变量中(但这不是个好主意):

或者,如果您可以将其重写为类:

var foo = function () {
    this.bar = 4;
};
var bax = new foo();
// bax.bar = 4

我希望这能有所帮助。

你是说从匿名函数之外的函数吗?如果是这样,则无法直接访问
CoreTeamObject
,除非它以某种方式公开。是的,从外部。谢谢。您目前如何使用该对象?对于显示的最小代码,
CoreTeamObject
在匿名函数之外根本无法访问,因此向其添加额外的方法肯定是次要的,而不是首先使其可访问?另外,您现有的代码有一个语法错误,即您有一个标签
coreTeamFunction:
,后跟一个没有名称的函数语句。具体来说,它是一个daterangepicker。这种用法只需要在一些jQuery选择器上调用.daterangepicker(…)。只是一个普通的jQuery插件——它迭代给定的元素,并使用新的元素创建对象。
var foo = function () {
    this.bar = 4;
};
var bax = new foo();
// bax.bar = 4