我真的很喜歡John Resig's simple inheritance method。它有很好的語法,this._super超級強大。Javascript類繼承w/this this._super和正確defineProperty描述符
這是2014年的艱難,我希望能夠與其他描述符一起定義getters & setter(但如果可能,仍然保持Resig版本的簡單性)。
我會如何解決這個問題,同時保持類似於我喜歡的Resig的語法?
我的夢想是這樣的:
var Person = Class.extend({
init: function(isDancing){
this.dancing = isDancing;
},
dance: function(){
return this.dancing;
}
tools: { // <---- this would be so awesome
get: function() { ... },
set: function(v) { ... },
enumerable: true
},
});
var Ninja = Person.extend({
init: function(){
this._super(false);
},
dance: function(){
// Call the inherited version of dance()
return this._super();
},
swingSword: function(){
return true;
},
tools: {
get: _super, // <---- and this too
set: function(v) {
this._super(v);
doSomethingElse();
}
}
});
繼承是從來沒有答案!特別是在JavaScript中。 – doliver 2014-08-29 03:02:42