为什么我不能这样做?

var MyObject = {}
MyObject.foo = function(){
  this.sayhello = function(){
    alert('Hello');
  }
}
MyObject.foo.sayhello();

关于如何做到这一点的任何想法?

最佳答案

foo 中, this 引用 MyObject ,这意味着之后:

MyObject.foo();

你可以打电话:
MyObject.sayhello();

如果您希望能够调用 MyObject.foo.sayhello() ,则需要 sayhello 成为 MyObject.foo 上的函数:
var MyObject = {}
MyObject.foo = function () {...};
MyObject.foo.sayhello = function () {
    alert('hello');
}

如果您不需要 foo 也是一个函数,您可以简单地声明:
var MyObject = {
    foo: {
        sayhello: function () {
            alert('Hello');
        }
    }
}

这将允许您调用:
MyObject.foo.sayhello();

关于Javascript 对象方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14736447/

10-12 07:25
查看更多