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

标签 javascript reference copy

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

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

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

然后我从我刚刚从拖放中收到的文件中读取了一个 blob:

...
.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 处理程序时,我是在创建该函数的完整副本还是只是一个引用?

最佳答案

您正在创建引用。演示:

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

关于javascript - 在 JavaScript 中分配函数处理程序会创建副本还是仅创建引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293094/

相关文章:

javascript - Angular js : Dynamic expression not working for ng-switch-when

javascript - ES2015+ 有效地将对象数组转换为以对象数组作为值的分组 HashMap 的方法

c - undefined reference `explain_read' ......没有这样的文件或目录

Excel 工作表引用一般和超链接功能

c - 在计时器处理函数中使用 copy_to_user 失败,为什么?

javascript - 如何使用 JavaScript 获取 Firebase 数据库和文件存储中的存储空间使用情况

javascript - 私有(private)字段无法使用 Webpack 进行编译

c++ - 为什么非常量引用不能绑定(bind)到临时对象?

java - 有没有办法制作 JPanel 的非深拷贝

linux - 从文本部分写入文本部分数据