質問を変えウェブdevのプロジェクトのために、 "表を工芸のMinecraft(C)" を作るしようとしています。今度は.call
を使用してthis
の値をputItem
に設定する必要があるとの唯一の問題だと思われます。
<img src = 'images/wood.png' onclick = 'tmp = "wood";'>
<td onclick = "grid1 = tmp; checkEmpty(); putItem.call(this);">
オリジナル答え
私は
...あなたはこれが欲しい
<!-- v---- assign empty string to global grid1 variable -->
<td onclick = "grid1 = tmp; checkEmpty(); putItem(this);">
...これの代わりに仮定
<!-- v---- assign "grid1" string to global tmp variable -->
<td onclick = "tmp = 'grid1'; checkEmpty(); putItem.call(this);">
<!-- set the value of "this" in "putItem"---^ -->
は、だから今はtmp
変数に"grid1"
文字列を代入している、とあなたはputItem()
を呼び出すとき、あなたはそのthis
値を設定する.call
を使用しています。
述べ、代わりにグローバル変数、なぜだけでなくパス文字列を使用しての?
function putItem(str) {
this.innerHTML = "<img src = 'image/" + str + ".png'>";
}
<td onclick = "checkEmpty(); putItem.call(this, 'grid1');">
私はtmpにしていないいいえ、私はGRID1に入れしようとしているオブジェクトではありません。 グローバル変数としてgrid1もあります。これはtmpを受け取る必要があります – SemicolonExpected
@ArcaneExplosion:申し訳ありません、私は更新します。イメージが最初にクリックされている場合は、 '.call'を使用して' putItem'関数で 'this'値を設定するだけです。 –
'grid1'が何であるかを把握する必要があり、' tmp'変数をgrid1に割り当てています。おそらく私は事が何であるかを置くべきでしょうか? '.call'の使用例を教えてください。私はその方法がどのように使われているのか分かりません。 – SemicolonExpected