dropzone.js: __slice = [].slice

4

我正在尝试理解Enyo的fantastic dropzone.js的某些部分。我对JavaScript和原型范式的思路还不是很熟悉。在第四行代码里有一行我想知道它的作用,以及为什么会使用这样的一行代码。这行代码如下所示:

var __slice = [].slice

我理解的是,这段代码从数组原型对象中提取了切片函数,并以一种更简单的方式引用它。这种方法有什么好处?为什么要在开头使用两个下划线?我曾读到过,这样做是为了避免全局范围内的冲突,但是不是通过将整个代码包含在

标签中已经避免了这种情况吗?

(function() { //code here
}).call(this);

构建?

1个回答

3
我理解得对,这将从数组原型对象中获取“slice”函数,只是提供了一种更简便的方式来引用它?
是的。
这种方法的好处是什么?
__slice比Array.prototype.slice(还需要一些额外的属性查找层)和[].slice理论上创建和丢弃一个对象。因此,为其设置标识符只是节省了一些打字和最细微、最细微、最细微的运行时性能。
为什么在开头要有双下划线?我在某个地方看到说,这是为了避免全局范围内的冲突,但是这不是通过将整个代码包装在...中已经避免了吗?
是的,在这种情况下,通过这样做已经避免了。在这种情况下,这只是作者想要使用的一种惯例,也许是为了表明这是他/她到Array.prototype.slice的快捷方式。__没有固有的含义。

感谢确认并阐明背后的原因。答案已被接受。看着前面的代码,我可能会问很多这方面的问题... :D - xtrom0rt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接