まず最初に、coffeescript サイトから動物の例を取り上げました。
javascript で次のことをシミュレートしたい:
- クラス
- パブリック メソッドのみ
- プライベート メソッドと変数のみ
- 継承
- スーパークラスからメソッドを呼び出す
これを作成するこの方法は問題ないと思いますがmove
、親クラスからメソッドを取得しようとすると、常にそれ自体に戻ります。私が間違っていることは何ですか?
ところで。目標を達成するためのベスト プラクティスはどれですか? 私がしていることは正しいですか?
var Animal = (function() {
function Animal() {}
var _private = {};
var _public = {
move: function() {
console.log('Can move');
}
};
Animal.prototype = _public;
Animal.prototype.constructor = Animal;
return Animal;
})();
var Snake = (function(_super) {
function Snake() {}
var _private = {};
var _public = {
move: function() {
console.log(Snake._super_.move);
console.log('Slithering');
}
};
Snake.prototype = _super.prototype;
Snake._super_ = _super.prototype;
for(var method in _public) {
if(Object.prototype.toString.call(_public[method]) === '[object Function]') {
Snake.prototype[method] = _public[method];
}
}
return Snake;
})(Animal);
var s = new Snake;
s.move();