2012-01-25 4 views
0

以下のコードでは、まず「通常の」方法で印刷してみます。次に、私は関数を匿名化し、それを変数に代入してから印刷します。 Chromeでは、これでソースコードの印刷が始まります。私は間違って何をしていますか?JavaScriptで関数を匿名にするにはどうすればよいですか?

function sumSq() { 
    var sum = 0; 
    for (i=0;i<=10;i++) { 
     sum+=i*i; 
    } 
    return sum; 
} 
console.log(sumSq()); 

var mySum = function() { 
    var sum = 0; 
    for (i=0;i<=10;i++) { 
     sum+=i*i; 
    } 
    return sum; 
} 
console.log(mySum); 
+1

それを呼び出すさてあなたは... –

答えて

1

コールmySum

console.log(mySum()); 

関数はオブジェクトですので、あなたが

console.log(mySum); 

呼び出すときJSは(mySumはObjectプロトタイプから継承)mySumオブジェクト上のtoStringを呼び出します。それがソースが印刷される理由です。

1

機能は、これとは別にmySum()

と呼ばれるべき、両方の方法は、同じことを行います。 ()を使用して

+0

"これとは別に" 機能を呼び出していませんでしたか?これは彼らが同じであるところの方法です。 –

1
var mySum = function() { 
    var sum = 0; 
    for (i=0;i<=10;i++) { 
     sum+=i*i; 
    } 
    return sum; 
} 

はとちょうど同じである:

function mySum() { 
    var sum = 0; 
    for (i=0;i<=10;i++) { 
     sum+=i*i; 
    } 
    return sum; 
} 

そしてconsole.log(mySum());

関連する問題