变量存储函数作为基元类型或引用类型

Variable store function as primitive type or reference type?

本文关键字:类型 引用类型 存储 函数 变量      更新时间:2023-09-26
var f1 = function(){}
var f2 = f1; 

指向与 f1 相同的函数,或者它存储来自 f1 的另一个副本?

f2的值和f1一样,是对同一函数的引用。

你可以用函数是对象的事实来证明它:

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

但是,由于您无法更改函数核心,因此了解这一点几乎没有实际用途,除了复制函数引用时不会使用太多内存的事实。

使用===证明真的很容易

var f1 = function(){}
var f2 = f1; 
console.log(f2===f1)
>>true

所以f2f1指向完全相同的功能。