0
var f1 = function(){}

var f2 = f1; 

f1 と同じ関数を指していましたか、それとも f1 からの別のコピーを格納していますか?

4

2 に答える 2

6

の値f2は、のようf1に、同じ関数への参照です。

関数がオブジェクトであるという事実を使用して、それを証明できます。

 var f1 = function(){}
 var f2 = f1; 
 f1.a = 3;
 console.log(f2.a); // logs 3

しかし、関数コアを変更することはできないため、関数参照を複製する場合に多くのメモリを使用しないという事実を除けば、これを知っていても実用的な用途はほとんどありません。

于 2013-08-05T14:39:24.053 に答える
1

を使って証明するのは本当に簡単です===

var f1 = function(){}
var f2 = f1; 

console.log(f2===f1)

>>true

したがってf2、 とf1はまったく同じ関数を指しています。

于 2013-08-05T14:41:23.623 に答える