2

我有点背工程一个javascript项目,需要将一个函数注入到一些已经写好的代码中。

我希望能够在 javascript 中调用类似以下函数的内容:

human.mouth.shout(word);

所以这将调用使对象“喊”的函数。

我的问题是,我如何创建人类对象的子属性。据我所知,我在javascript中只能有一个嵌套函数,所以最基本的我有这样的东西:

function HumanObj(){
    this.shout = function(word){
        alert(word);
    }
}

然后调用它,我会使用:

var human = new HumanObj;
human.shout("HELLO WORLD");

所以这会给我们带来警报:“HELLO WORLD”。

那么我将如何分解它以便我可以使用以下方式调用它?

var human = new HumanObj;
human.mouth.shout("HELLO WORLD");

已经尝试过了,但没有奏效 - 假设你不能有太多级别的嵌套函数......

function HumanObj(){
    this.mouth = function(){
         this.shout = function(word){
            alert(word);
        }
    }
}

谢谢!

4

1 回答 1

4

你可以做:

function HumanObj(){
    this.mouth = {
        shout: function(word){
            alert(word);
        }
    };
}

或者,如果您需要mouth实例化(在其原型中添加其他内容),您可以执行以下操作:

function HumanObj(){
    function mouthObj() {
        this.shout = function(word){
            alert(word);
        }
    }
    this.mouth = new mouthObj();
}
于 2013-05-30T15:57:53.737 回答