我的问题似乎是,如果我从函数对象中调用它,我的对象函数是不可见的。示例代码:
function foo()
{
this.bar = function()
{
alert("hit me!");
}
this.sna = {
fu: function ()
{
this.bar();
}
};
}
this
似乎是指sna
而不是foo
。我如何地址foo
? this.parent
不起作用。
答案 0 :(得分:1)
一种选择是添加对this
的引用:
function foo() {
var _t = this;
this.bar = function() { };
this.child = {
this.foo = function() {
_t.bar():
};
};
}
答案 1 :(得分:1)
使用变量来引用this
(Foo)。见this - JavaScript | MDN
function Foo() {
this.bar = function() {
console.log("hit me!");
};
var that = this;
this.sna = {
fu: function() {
that.bar();
}
};
}
var foo = new Foo();
foo.bar();
foo.sna.fu();