我一直试图了解JavaScript继承.令人困惑的是,似乎有许多不同的方法 - 克罗克福德提出了相当多的方法,但不能完全理解他的散文(或者可能只是没有把它与我的特定情况联系起来).
这是我到目前为止的一个例子:
// base class
var Item = function( type, name ) {
this.type = type;
this.name = name; // unused
};
// actual class (one of many related alternatives)
var Book = function( title, author ) {
this.name = title; // redundant (base class)
this.author = author;
};
Book.prototype = new Item('book'); // duplication of "book"
// instances
var book = new Book('Hello World', 'A. Noob');
Run Code Online (Sandbox Code Playgroud)
这种方法给我留下了相当多的冗余,因为我不能将特定于实例的属性委托给基类(在原型分配时,属性值是未知的).因此每个子类必须重复该属性.有没有推荐的解决方法?
奖金问题:是否有合理的方法来避免"新"操作员,或者是否会被视为反对该语言的新手?