【发布时间】:2013-03-20 01:01:35
【问题描述】:
我还是个 JS 新手,我正在尝试了解使用原型和继承的最佳/最简洁的方式。
通常我这样写对象/原型定义:
var Foo = function(data) {
this.data = data;
};
Foo.prototype = {
someMethod: function() {
return "whatever";
}
};
我喜欢这个,因为我经常使用几层深的命名空间对象,所以它实际上可能看起来更像这样:
App.Model.FooModel = function(){...};
App.Model.FooModel.prototype = {...};
这很好,因为我不必输入每个方法的全名来编写原型,只需输入名称,即。 someMethod: function(){} 而不是 App.Model.FooModel.prototype.someMethod = function(){}。
现在,我遇到的问题是我不确定如何使用 JS 中的继承来做到这一点。如果我这样做,我可以让继承正常工作:
var Child = function(){...};
Child.prototype = new Parent;
Child.prototype.someMethod = function(){...};
...但是现在在一个更复杂的应用程序中,我们又要为每个方法写出对象的全名,我觉得这既乏味又难以阅读。
所以,我的问题是:除了使用对象的全名附加所有子方法之外,是否有一种简洁、直接的方法来编写从另一个对象继承的原型?
谢谢!
【问题讨论】:
标签: javascript syntax prototype