【发布时间】:2012-12-01 20:37:24
【问题描述】:
可能重复:
Javascript: Object Literal reference in own key’s function instead of ‘this’
我有这个简单的代码:
var myObj = {
init: function ()
{
this.Name = "Royi";
this.BindMe();
}
BindMe: function ()
{
$('myButton').on("click", this.Work);
},
Work: function ()
{
var self = this; <--------
}
}
跑步:
myObj.init();
这是一个简单的对象字面量。
问题出在Work 方法上。我想让它知道this (myObj)
有两种方法:
选项 #1
在BindMe中,点击时,通过:传递上下文:
$('myButton').on("click",{self:this}, this.Work);
在Work 做:
var self = e.data.self... //还要加上e
选项 #2
写var self = myObj ;
问题
还有其他方法吗?
哪种方式更好/正确?
【问题讨论】:
-
不使用对象字面量是一种选择吗?
-
@Bergi 我已经看到了这个问题。它没有提供答案。 (针对我的具体问题)。
-
@AndrewWhitaker 不。我想在文字对象中学习这种行为。
标签: javascript scope this