0

我有一个构造函数“Animals”,即命名其他一些构造函数,“鳄鱼”和“猴子”:

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() 不是函数。我假设我在继承 Animal 构造函数中的 Monkey 函数的方式上做错了,但是对于我的一生,我一直无法找到解决方案。

我应该使用什么方法来命名这些函数?

4

1 回答 1

1

我已经看到了很多东西,但是滥用命名空间的原型,到底是什么。一个又好又简单的问题有什么问题:

var Animals = {
   Crocodile: {

   }
}

或者,如果您想要构造方法:

var Animals = function () {
    return {
       Crocodile: function () {}
    }
};

var a = new Animals();
var c = new a.Crocodile();
于 2012-07-06T09:49:34.717 回答