如何绑定和获取函数的两个值?

时间:2013-12-04 06:15:27

标签: javascript

var sampleFunction = function() {
var self = this;
console.log(self.somevalue);
console.log(?); //output : 2
};

sampleFunction().bind(this,2);

如何在该示例函数中访问此值。

2 个答案:

答案 0 :(得分:2)

你需要create a new function这样

var boundFunction = sampleFunction.bind(this);

boundFunction(2)

通常最容易使用function.call这样的答案

 sampleFunction.call(this, 2);

答案 1 :(得分:1)

如果您要做的是创建一个始终调用sampleFunction并将参数传递给2的新函数,那么您可以这样做:

// define sampleFunction with one argument
var sampleFunction = function(data) {
    console.log(data);
}

// create a new function that always calls sampleFunction 
//     with a value for this and a particular argument
var newFunc = sampleFunction.bind(this, 2);

// call that new function
newFunc();   // will put 2 in the console

我还建议您阅读MDN doc page on .bind(),以便更好地了解它的作用以及如何使用它。

由于您没有为您真正想要做的事情提供任何背景信息,您也可以使用以下任何一种方法获得与上述相同的结果:

sampleFunction(2);
sampleFunction.call(this, 2);

如果这不是你想要做的事情,那么回过头来,描述一下你实际想要完成的事情