0
私はConstructorを構築し、そのプロトタイプに3つの関数を追加しました。 私はプロトタイプから関数を呼び出すしようとすると、私はこのエラーを取得JavaScriptプロトタイプ関数
例外TypeError:未定義の関数ではありません(評価「fireOne.addLogs(8)」)
誰かが私がやっているものを私に伝えることができてください。違う。私はそれを把握することはできません。
おかげで、事前に
function SignalFire(ID, startingLogs){
this.fireID = ID;
this.logsLeft = startingLogs;
}
var fireOne = new SignalFire(1, 20);
var fireTwo = new SignalFire(2, 18);
var fireThree = new SignalFire(3, 24);
SignalFire.prototype = {
addLogs: function(numLogs){
this.logsLeft += numLogs;
},
lightFire: function(){
alert("Whoooooosh!");
},
smokeSignal: function(message) {
if (this.logsLeft < this.message.length/10){
alert("Not enough fuel to send " +
"the current message!");
}
else {
this.lightFire();
var x = this.message.length;
for(var i = 0; i < x; i++){
alert("(((" + this.message[i] + ")))");
if (i % 10 === 0 && i !== 0){
this.logsLeft--;
}
}
}
}
};
fireOne.addLogs(8);
あなたがそれらを一つずつ追加した場合はこれがでも動作します( 'SignalFire.prototype.addLogs =機能...')。しかし、 'prototype'オブジェクト全体を完全に置き換えるので、参照は壊れています。 – deceze
fireOne.addLogs(8) – user2085143
の直前にオブジェクトを作成するだけです。コードの順です。プロトタイプを追加する前に作成します。プロトタイプオブジェクトの後にvar fireXXX = new SignalFire()を置く – epascarello