绑定与未绑定的功能

时间:2014-07-15 11:45:54

标签: javascript

  

什么是绑定函数和未绑定函数?

1 个答案:

答案 0 :(得分:5)

我创建了一个 JSFiddle 来说明我对差异的理解。未绑定函数是未绑定到对象的函数,因此该函数中的this引用全局(窗口)对象。您可以通过使函数成为对象的方法或使用.bind()方法显式绑定它来绑定函数。我在我的代码中演示了不同的案例:

// A function not bound to anything. "this" is the Window (root) object
var unboundFn = function() {
    alert('unboundFn: ' + this);
};
unboundFn();


// A function that is part of an object. "this" is the object
var partOfObj = function() {
    alert('partOfObj: ' + this.someProp);
};
var theObj = {
    "someProp": 'Some property',
    "theFn": partOfObj
};
theObj.theFn();


// A function that is bound using .bind(), "this" is the first parameter
var boundFn = function() {
    alert('boundFn: ' + this.someProp);
};
var boundFn = boundFn.bind(theObj);
boundFn();