如何制作多维物体?
function tst(){
this.a = function(){
alert(this.b.abc.c());
};
this.b = function(){
};
}
var obj = new tst();
obj.b.abc = function(){
this.c = function(){
return 'hello world';
};
};
obj.a();
答案 0 :(得分:0)
似乎在这里工作正常:
http://jsfiddle.net/maniator/e3pfu/
function tst(){
this.a = function(){
};
this.b = function(){
};
}
var obj = new tst();
obj.b.abc = function(){
alert(this);
this.c = function(){
};
};
obj.b.abc();
答案 1 :(得分:0)
问题在于此代码:
obj.b.abc = function(){
this.c = function(){
return 'hello world';
};
};
调用abc
函数不创建obj.b.abc.c
函数,但obj.b.c
函数。因此,this.b.abc.c()
会抛出错误,因为这样的函数不存在。
这将使其有效:
function tst() {
this.a = function() {
alert( this.b.abc.c() );
};
this.b = function() {
};
}
var obj = new tst();
obj.b.abc = function() {
this.abc.c = function() { // <--- NEW
return 'hello world';
};
};
obj.b.abc(); // <--- NEW
obj.a();