2012-02-20 23 views

答えて

8

doSomethingへの参照がonclickプロパティに割り当てられます。 2番目の引数は、の戻り値doSomethingに割り当てます。 doSomethingが関数を返さない限り、あなたが望むものとは思えません。

参照を割り当てます。

function doSomething() { 
    console.log("something"); 
} 
//When t is clicked, "something" is logged 
t.onclick = doSomething; 

は、戻り値を割り当てます。

function doSomething() { 
    console.log("something"); 
} 
//"something" is logged immediately. When clicked, nothing happens 
t.onclick = doSomething(); 

が返さ機能割り当てます

function doSomething() { 
    return function() { 
     console.log("something"); 
    }; 
} 
//When t is clicked, "something" is logged 
t.onclick = doSomething(); 
+0

非常

function doSomething() { return 5; } console.log(doSomething); // function() { return 5; } console.log(doSomething()); // 5 

だからt.onclick = doSomething;を行っています。 - ) –

0

を使用すると、オブジェクトを参照する方法は、中に多くのことを意味しJS。 doSomething;doSomething();の間に違いがあります。最初のものは関数を参照し、後者は関数のreturn valueを参照しているからです。この例を見てみると、私の言いたいことが分かります。 doSomething();だけでなく、関数を呼び出しますが、機能のreturn value返しますt.onclick = function() { return 5; };を言うような

だから、 `doSomethingのは、()`より良いreturnSomethingNowWhichWillDoSomethingThen() ``と命名されなければならない
関連する問題