gpt4 book ai didi

javascript - 在其他对象上使用 native 数组原型(prototype)方法有风险吗?

转载 作者:行者123 更新时间:2023-11-28 10:09:35 24 4
gpt4 key购买 nike

我已经制作了很多 jQuery 特殊事件,现在我正在尝试将它们制作为 jQuery 插件。

我的代码是:

$.each("down move hold up tap swipeUp swipeDown swipeLeft swipeRight drag dragCell".split(" "), function(key, value) {
$.fn[value] = function() {
var args = [value].concat(Array.prototype.splice.call(arguments,0));
if ( $.isFunction(arguments[0]) || $.isFunction(arguments[1]) ) {
return this.bind.apply(this, args);
} else {
return this.trigger.apply(this, args);
}
};
});

我循环名称数组(向下、移动、按住、向上等)并动态创建 jQuery 插件。

正如您所看到的,获取该值并以其后命名插件:$.fn.down$.fn.move 等。

然后我获取参数并通过 native 数组方法循环它。

Array.prototype.splice.call(arguments, 0);

这将返回一个 native 数组[arguments[0],arguments[1],...]

并将其与连接起来,最终得到:

["down", arguments[0], arguments[1], ...],
["move", arguments[0], arguments[1], ...],
....

这样做是否有任何风险(使用 native 方法和其他对象),是否有丢失数据的可能性?

如您所见,它与 jQuery 的 bindtrigger 方法混淆。这也危险吗?

最佳答案

好吧,我结束这个问题:实现相同参数的方法是:

感谢raynos

var toArray = function (obj) {
var ret = new Array(obj.length);
for (var i = 0, len = obj.length; i < len; i++) {
ret[i] = obj[i];
}
return ret;
}

toArray(arguments);

关于javascript - 在其他对象上使用 native 数组原型(prototype)方法有风险吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648575/

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