我正在阅读JSIS文章http://javascriptissexy.com/javascript-apply-call-and-bind-methods-are-essential-for-javascript-professionals/这里是我想要清楚的例子。
示例方法'clickhandler'使用此关键字来引用用户对象,但这不起作用,解决方法是使用原型绑定方法..但是这样做的好处是什么,而不仅仅是说用户.data直接而不是使用此关键字。
//<button>Get Random Person</button>
//<input type="text">
var user = {
data :[
{name:"T. Woods", age:37},
{name:"P. Mickelson", age:43}
],
clickHandler:function (event) {
var randomNum = ((Math.random () * 2 | 0) + 1) - 1; // random number between 0 and 1
// This line is adding a random person from the data array to the text field
$ ("input").val (this.data[randomNum].name + " " + this.data[randomNum].age);
}
}
// Assign an eventHandler to the button's click event
$ ("button").click (user.clickHandler);