我正在努力弄清楚,恩育的奇妙的dropzone.js的至少一部分。我对JavaScript的思路和原型范式相当熟悉。在第四行有一行代码,我想知道它做什么,为什么要使用这样的一行。这一行看上去如下:
var __slice = [].slice我是否正确地理解了,这从数组原型对象中获取了片函数,只是给了它一个更简单的方法来引用它?这种方法的好处是什么?为什么一开始就用双下划线?我在某个地方读到,这将避免全局范围内的冲突,但这不是已经通过将整个代码包装在
(function() { //code here
}).call(this);建筑?
发布于 2016-11-26 11:31:45
我是否正确地理解了,这从数组原型对象中获取了
slice函数,只是给了它一个更简单的方法来引用它?
是。
这种方法的好处是什么?
__slice比Array.prototype.slice短(也需要几个额外的属性查找层),理论上,[].slice创建并丢弃了一个对象。因此,为它保留一个标识符只是在保存一些类型和最小、最小、最小的运行时性能。
为什么一开始就用双下划线?我在某个地方读到,这样做是为了避免全局范围内的冲突,但如果将整个代码包装在.
是的,这样做已经避免了。在这种情况下,这只是作者想要使用的约定,也许是为了表明这是他/她通往Array.prototype.slice的捷径。__没有内在的含义。
https://stackoverflow.com/questions/40817812
复制相似问题