这里有新手JavaScript.
如果在闭包中,我如何foo从成员中引用成员?foobarfoobar
var priv = {
foo: "bar",
foobar: (function() {
return this.foo === "bar";
})()
};
Run Code Online (Sandbox Code Playgroud)
上面的代码失败了.在它,this.foo是undefined.如果我改变this.foo到priv.foo,它仍然是undefined.如何priv.foo在foobar封闭内引用?
在初始化期间不可能读取其定义中的对象的任何属性,因为prev那时将是未定义的。当您尝试在其中调用 clojure 时,它会引用 undefinedthis或priv.
也许你想写:
foobar: (function() {
return this.foo === "bar";
})
Run Code Online (Sandbox Code Playgroud)
()到最后没有。然后你可以将其称为priv.foobar();
如果您仍然需要调用它,您可以foobar在之后定义foo:
var priv = {
foo: "bar"
};
priv.foobar = (function() {
return priv.foo === "bar";
})()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |