如何使用匿名函数替换接受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];}
答案 0 :(得分:3)
这可能是你想要的:
var myArray2=(function(myProp){
return [1*myProp,2*myProp,3*myProp];}
)(this.myProp);
所以在这里我们定义一个匿名函数(因为它没有名字)并立即调用它。 this.myProp
将作为参数传递。
答案 1 :(得分:0)
var myArray2=(function(){return [1*this.myProp,2*this.myProp,3*this.myProp];}).call(this);
可以使用“call”方法或“apply”方法在函数上调用任何javascript函数。 在这两种方式中,第一个参数是“this”变量在功能块内引用的上下文对象。
更多: http://msdn.microsoft.com/en-us/library/ie/h2ak8h2y(v=vs.94).aspx http://odetocode.com/blogs/scott/archive/2007/07/05/function-apply-and-function-call-in-javascript.aspx
答案 2 :(得分:0)
您的描述有点模糊,所以我只能猜测您想要为预定义对象添加功能。这可以用Prototype
属性来完成。
FooBar = function(){
this.foo = 1;
}
FooBar.prototype.getFoo = function() {
return this.foo;
}
FooBar.prototype.getFoo = function() {
return this.foo;
}