我想确保我可以使用函数处理程序,而无需在每次将其分配给处理程序时生成副本。
我有一个带有处理程序的类,例如:
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/