我有一个构造函数“Animals”,即命名空间的一些其他构造函数,“Crocodile”和“Monkey”:
var Monkey = function(Animals) {
this.Animals = Animals;
};
Monkey.prototype.feedMe = function() {
this.Animals.feed();
};
var Crocodile = function(Animals) {
this.Animals = Animals;
};
Crocodile.prototype.feedMe = function() {
this.Animals.feed();
};
var Animals = function(zoo) {
this.zoo = zoo;
};
Animals.prototype.feed = function() {
//feed the animal
};
Animals.prototype.Monkey = function() {
this.Animals = Animals.prototype;
};
Animals.prototype.Monkey.prototype = Monkey.prototype;
Animals.prototype.Crocodile = function() {
this.Animals = Animals.prototype;
};
Animals.prototype.Crocodile.prototype = Crocodile.prototype;
我的意图是能够做到以下几点:
var animals = new Animals("NY");
var monkey = new animals.Monkey();
monkey.feed();
我收到一条错误消息,指出monkey.feed()不是函数。我假设我在动作构造函数中继承Monkey函数的方式做错了,但是对于我的生活,我一直无法找到解决方案。
我应该使用什么方法来命名这些函数?
答案 0 :(得分:1)
我已经看到了很多东西,但滥用了名称空间的原型,到底是什么。一个美好而简单的问题:
var Animals = {
Crocodile: {
}
}
或者如果你想要构造函数的方式:
var Animals = function () {
return {
Crocodile: function () {}
}
};
var a = new Animals();
var c = new a.Crocodile();