gpt4 book ai didi

javascript - 为什么这个javascript是必要的?

转载 作者:行者123 更新时间:2023-11-29 19:41:27 32 4
gpt4 key购买 nike

我正在阅读 pallet.js 的源代码并遇到了这个。

var ret = (function(proto) {
return {
slice: function(arr, opt_begin, opt_end) {
return proto.slice.apply(arr, proto.slice.call(arguments, 1));
},
extend: function(arr, arr2) {
proto.push.apply(arr, arr2);
}
};
})(Array.prototype);
var slice = ret.slice;
var extend = ret.extend;

为什么这是必要的?为什么他们不能简单地写这个:

var slice = function(arr,opt_begin,opt_end) {
return Array.prototype.slice.apply(arr,[opt_begin,opt_end]));
}
var extend = function(arr,arr2) {
return Array.prototype.push.apply(arr,arr2);
}

编辑 1:

回应重复的问题。我不认为它是重复的,但这个问题确实解决了我的问题。所以这是一个优化。但是不会每个人只评估一次吗?那么这里对于两个函数调用真的有显着的改进吗?

此外,如果我们担心性能,为什么我们调用 proto.slice.call(arguments,1) 而不是手动构造两个元素的数组 [opt_begin,opt_end],slice 更快吗?

最佳答案

因为语法实在是太酷了。另外,您可以通过告诉自己它更干燥来合理化它的使用。您不必键入 Array.prototype 两次。

关于javascript - 为什么这个javascript是必要的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22747698/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com