我是JavaScript的新手,因此不太了解它的对象模型,但据我所知,我必须做类似的事情。
function set_test(text) { this['test'] = text; };
a = {};
text = 'ok';
a.prototype.ok = set_test(text);
alert(a['test']); #Should be 'ok'
text = 'fail';
a.ok;
alert(a['test']); #Should be 'ok'
有人可以说这里有什么问题吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
我认为整个代码都错了。
您会发现,在JavaScript中,函数是对象,您可以根据需要传递它们。执行上下文(this
)取决于您调用函数的方式。
如果将函数存储在对象的属性中,然后通过调用obj.fn()
来调用它,则执行上下文将设置为obj
。
另请注意,在将其指定为对象的属性时,不应调用该函数。
function set_test(text) { this['test'] = text; }
var a = {};
a.ok = set_test; // see, no invocation
a.ok('abc');
alert(a['test']); // alerts 'abc'
a.ok('def');
alert(a['test']); // alerts 'def'
答案 2 :(得分:0)
我认为在函数set_test中这个['test']不起作用。因为“这个”不是“一个”。您应该在对象a下定义方法set_test - 然后它将起作用。
我建议您查看Mootools文档 - 有更好的对象模型语法。您还可以查看Mootools源以获得更详细的问题答案和js对象模型