原型命名空间
Prototypal Namespacing
我有一个构造函数"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()不是一个函数。我假设我在 Animal 构造函数中继承 Monkey 函数的方式做错了,但在我的一生中,我一直无法找到解决方案。
我应该使用什么正确的方法来为这些函数命名?
我见过很多东西,但是滥用命名空间的原型,到底是什么。一个漂亮而简单的问题是什么:
var Animals = {
Crocodile: {
}
}
或者,如果您想要构造函数方式:
var Animals = function () {
return {
Crocodile: function () {}
}
};
var a = new Animals();
var c = new a.Crocodile();
相关文章:
- 在javascript中使用命名空间
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- 如何使用javascript命名空间
- js命名空间和变量范围
- html,js-如何限制元素"范围“-命名空间
- 转换自的JavaScript命名空间
- 命名空间与自调用函数
- 什么's当前命名空间/类中JavaScript子命名空间/类的语法
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- 向对象原型添加命名空间方法
- 如何在不让web组件的原型进入全局命名空间的情况下维护它们之间的依赖关系
- 原型命名空间
- 使用原型的库子模块的私有命名空间
- 如何将原型模式引入 javascript 命名空间
- 在命名空间内设置标准JavaScript原型继承
- 在javascript对象中,执行"static"函数和原型函数共享相同的命名空间
- 如果原型继承提供了这一切,为什么使用Javascript命名空间?
- 将Javascript命名空间闭包和原型一起使用会失败
- 使用jsdoc-toolkit在命名空间中记录带有原型的javascript类