我有点回头设计一个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);
}
}
}
谢谢!
答案 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();
}