在JavaScript中分配函数处理程序是创建副本还是仅引用?

时间:2014-03-10 06:04:19

标签: javascript reference copy

我想确保每次将其分配给处理程序时都可以使用函数处理程序而不生成副本。

我有一个带有处理程序的类,例如:

snapwebsites.Editor.prototype._somePrivateFunctionHandler = function(e) { ... }

然后我从一个刚从Drag& amp;下降:

...
.on("drop", function(e)
{
    // [...snip...] -- I have tests and loop through all the files and
    //                 do this on each file:
    r = new FileReader;
    r.onload = snapwebsites.Editor.prototype._somePrivateFunctionHandler;
    r.readAsArrayBuffer(e.originalEvent.dataTransfer.files[0])
}
...

当我将_somePrivateFunctionHandler函数分配给FileReader的onload处理程序时,我是创建函数的完整副本还是只是引用?

1 个答案:

答案 0 :(得分:2)

您正在创建参考。为了证明:

var xyz = function() {};
var abc  = xyz;
xyz.someproperty = 1;
abc.someproperty; /=> 1