有谁能告诉我如何在这里访问变量“a”:
var test = { a: 3, init: function() { $("body").click(function() { alert(a); }); } }; test.init();
这也不起作用:alert(this.a);
提前致谢。
答案 0 :(得分:2)
实际上,我更喜欢这个:它是自我设置和初始化:
function createX() { var self = { init: function() { $("body").click(this.doit); }, doit: function(data, b) { alert(self.testing()); }, testing: function() { return 4; } } self.init(); return self; } $(function() { createX(); });
答案 1 :(得分:0)
您必须引用该对象:
test.a
答案 2 :(得分:0)
添加自我引用: -
var test = {
a: 3,
init: function() {
var self = this
$("body").click(function() {
alert(self.a);
});
}
};
答案 3 :(得分:0)
好的,这有效:
var test = { a: 3, init: function() { var self = this; $("body").click(function() { self.doit(); }); }, doit: function() { var self = this; alert(self.a); } };
但我需要重用doit函数,所以现在这不起作用:
var test = { a: 3, init: function() { var self = this; $("body").click(self.doit); }, doit: function() { var self = this; alert(self.a); } };
答案 4 :(得分:0)
好的,这解决了第二个问题:
function test() { var self; return { init: function() { self = this; $("body").click(this.doit); }, doit: function(data, b) { alert(self.testing()); }, testing: function() { return 4; } } } $(function() { var x = test(); x.init(); });