2012-01-28 1 views

答えて

2

質問を変えウェブ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');"> 
+0

私はtmpにしていないいいえ、私はGRID1に入れしようとしているオブジェクトではありません。 グローバル変数としてgrid1もあります。これはtmpを受け取る必要があります – SemicolonExpected

+0

@ArcaneExplosion:申し訳ありません、私は更新します。イメージが最初にクリックされている場合は、 '.call'を使用して' putItem'関数で 'this'値を設定するだけです。 –

+0

'grid1'が何であるかを把握する必要があり、' tmp'変数をgrid1に割り当てています。おそらく私は事が何であるかを置くべきでしょうか? '.call'の使用例を教えてください。私はその方法がどのように使われているのか分かりません。 – SemicolonExpected

関連する問題