这样做:
getData: function ()
{
this.age = 34 //notice this
}
具有以下优点:
如果您需要重命名obj
为其他名称,您的函数不必更改,因为它们将对象称为this
.
它更便携;如果您在其他地方需要相同的功能,在另一个对象中,复制/粘贴会更容易。
关于点击处理程序
话虽如此,当您的代码在点击处理程序中使用时必须小心。例如:
var obj = {
value: 'hello world',
doSomething: function ()
{
alert(this.value);
}
}
// find first <div> on the page and attach click handler
var firstDiv = document.getElementsByTagName('div')[0];
firstDiv.addEventListener('click', obj.doSomething, false);
单击时<div>
,它将调用obj.doSomething
,但this
现在引用该window
对象,这是意外的,您的代码将警告“未定义”。
要修复它,您需要编写一个辅助函数:
firstDiv.addEventListener('click', function() {
obj.doSomething();
}, false);