0

如何使用匿名函数替换接受this并返回结果的普通函数?请描述如何将变量发送到匿名函数和从匿名函数发送。

例如,替换:

function myFunc(myProp){return [1*myProp,2*myProp,3*myProp];} 
this.myProp=2;
var myArray1=myFunc(this.myProp);

有类似的东西:

var myArray2=function(){return [1*this.myProp,2*this.myProp,3*this.myProp];}
4

3 回答 3

3

这可能是你想要的:

var myArray2=(function(myProp){
                return [1*myProp,2*myProp,3*myProp];}
             )(this.myProp);

所以这里我们定义了一个匿名函数(因为它没有名字)并立即调用它。this.myProp将作为参数传递。

于 2013-10-07T16:55:53.747 回答
0
var myArray2=(function(){return [1*this.myProp,2*this.myProp,3*this.myProp];}).call(this);

可以使用函数上的“调用”方法或“应用”方法调用任何 javascript 函数。在这两种方式中,第一个参数是“this”变量在功能块内引用的上下文对象。

更多: http: //msdn.microsoft.com/en-us/library/ie/h2ak8h2y (v=vs.94).aspx http://odetocode.com/blogs/scott/archive/2007/07/05/函数应用和函数调用 in-javascript.aspx

于 2013-10-07T16:48:05.053 回答
0

您的描述有点模糊,所以我只能猜测您想向预定义的对象添加功能。这可以通过Prototype财产来完成。

FooBar = function(){ this.foo = 1; }

FooBar.prototype.getFoo = function() {
    return this.foo;
}

于 2013-10-07T16:54:06.143 回答