javascript中的多个嵌套函数

时间:2013-05-30 15:56:34

标签: javascript oop

我有点回头设计一个javascript项目,需要在一些已编写的代码中注入一个函数。

我希望能够在javascript中调用以下函数:

human.mouth.shout(字);

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

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

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

然后打电话给我,我会用:

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

所以这会给我们提醒:“你好世界”。

那么我该如何解决这个问题,以便我可以使用以下内容进行调用?

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

尝试了这个,但没有用 - 假设你不能有太多级别的嵌套函数......

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

谢谢!

1 个答案:

答案 0 :(得分: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();
}