【发布时间】:2009-06-29 07:06:16
【问题描述】:
谁能告诉我如何在这里访问变量“a”:
变种测试 = { 一个:3, 初始化:函数(){ $("body").click(function() { 警报(一); }); } }; 测试.init();这也不起作用:alert(this.a);
提前致谢。
【问题讨论】:
谁能告诉我如何在这里访问变量“a”:
变种测试 = { 一个:3, 初始化:函数(){ $("body").click(function() { 警报(一); }); } }; 测试.init();这也不起作用:alert(this.a);
提前致谢。
【问题讨论】:
其实我更喜欢这个:self设置和初始化:
函数 createX() { 变量自我 = { 初始化:函数(){ $("body").click(this.doit); }, doit:函数(数据,b){ 警报(self.testing()); }, 测试:函数(){ 返回 4; } } self.init(); 回归自我; } $(函数(){ 创建X(); });【讨论】:
你必须引用对象:
test.a
【讨论】:
添加自我引用:-
var test = {
a: 3,
init: function() {
var self = this
$("body").click(function() {
alert(self.a);
});
}
};
【讨论】:
var test = { a: 3, init: function() { var self = this; $("body").click(function() { test.doit(); }); }, doit: function() { var self = this;警报(self.a); } }; 但我需要重用 doit 函数,所以现在这不起作用: var test = { a: 3, init: function() { var self = this; $("body").click(self.doit); }, doit: function() { var self = this;警报(self.a); } }; 因为 doit 中的“this”指的是 $("body") obj。想法?
好的,这行得通:
变种测试 = { 一个:3, 初始化:函数(){ 变种自我=这个; $("body").click(函数() { self.doit(); }); }, doit:函数(){ 变种自我=这个; 警报(self.a); } };但我需要重用 doit 函数,所以现在这不起作用:
变种测试 = { 一个:3, 初始化:函数(){ 变种自我=这个; $("body").click(self.doit); }, doit:函数(){ 变种自我=这个; 警报(self.a); } };【讨论】:
好的,这解决了第二个问题:
功能测试() { 变量自我; 返回 { 初始化:函数(){ 自我=这个; $("body").click(this.doit); }, doit:函数(数据,b){ 警报(self.testing()); }, 测试:函数(){ 返回 4; } } } $(函数(){ 变量 x = 测试(); x.init(); });【讨论】: