我使用原型的獨立的類繼承:https://github.com/Jakobo/PTClass類的繼承與原型的類接口
和我有以下類:
App.hello = Class.create({
initialize: function(args) {
this.name = args.name
},
sayHello: function() {
console.log('Hello, ' + this.name);
},
sayGoodbye: function() {
console.log('Goodbye, ' + this.name);
}
});
App.yo = Class.create(App.hello, {
initialize: function($super) {
$super();
},
sayHello: function() {
console.log('Yo, ' + this.name);
}
});
凡想法是,yo
將從hello
繼承並覆蓋其sayHello
方法。但也可以在其父類中調用sayGoodbye
方法。
所以我打電話給他們,像這樣:
var test = new App.hello({name: 'Cameron'});
test.sayHello();
test.sayGoodbye();
var test2 = new App.yo({name: 'Cameron'});
test2.sayHello();
test2.sayGoodbye();
但是我得到的錯誤Uncaught TypeError: Cannot read property 'name' of undefined
我yo
類。
我該如何正確繼承我的hello
類?
只是把它那裏:PrototypeJS的'Class'東西是過時,PrototypeJS是不是真的保持多少這些天。您最好學習ES2015中引入的新「類」語法(又名「ES6」),並根據需要爲舊版瀏覽器進行轉譯。 –