私は実際のプロトタイプの継承について、関数の代わりにオブジェクトのみを使用してKyle Simpsonに従っています。 Object.createとObject.assignを使ってオブジェクトにミックスインを追加することができたかどうかを確認したかったのです。私はさらにそれをさらに進めて、ミックスインのプロパティの値の一部をベースオブジェクトのプロパティの値に基づいてベースにしました。私はいつも一緒に働こうとしている価値のためにNaNを取得します。コードは次のとおりです:Object.assign()を使用して他のオブジェクトから基本オブジェクトのプロパティを参照する方法
function generatorFactory() {
var basePlayer = {
x: 0,
y: 0,
baseHealth: 50
};
var generatePlayer = function() {
return basePlayer;
};
return generatePlayer;
}
var playerGenerator = generatorFactory();
var basicPlayerObject = playerGenerator();
var heavyArmor = {
defense: 15,
attack: 9
};
var lightArmor = {
defense: 7
};
var swordsman = {
health: this.baseHealth + 10
};
var knifeFighter = {
health: this.baseHealth - 10
};
var sigurd = Object.assign(Object.create(basicPlayerObject), heavyArmor, swordsman);
console.log(sigurd.health);
console.log(sigurd.defense);
console.log(sigurd.attack);
console.log("Player coordinates: (" + sigurd.x + ", " + sigurd.y +")");
私は剣士ミックスインでプレイヤーのベースヘルスを調整したいと思います。私は 'this'を使ってみましたが、助けにはなりませんでした。私はこれが完全に間違っていると思っています。私はここで間違って何をしているのですか?
"*関数の代わりにオブジェクトのみを使う*" - あまり意味がない。関数をメソッドとして使用していますが、関数を使用してオブジェクトを作成しないと、柔軟性が失われます。 – Bergi
これを開梱できますか?私はまだprototypal継承で作業するこの他の方法を学んでいるので、私はそれを正しく理解したり、正しく表現していないかもしれません。 – redeagle47