gpt4 book ai didi

javascript - 如何扩展 Array.prototype.push()?

转载 作者:行者123 更新时间:2023-12-02 23:35:21 25 4
gpt4 key购买 nike

我正在尝试扩展Array.push方法,以便使用push将触发回调方法,然后执行正常的数组功能。

我不太确定如何做到这一点,但这里有一些我一直没有成功使用的代码。

arr = [];
arr.push = function(data){

//callback method goes here

this = Array.push(data);
return this.length;
}

arr.push('test');

最佳答案

由于push允许推送多个元素,因此我使用下面的arguments变量让真正的push方法拥有所有参数。

此解决方案仅影响 arr 变量:

arr.push = function () {
//Do what you want here...
return Array.prototype.push.apply(this, arguments);
}

此解决方案影响所有阵列。我不建议您这样做。

Array.prototype.push = (function() {
var original = Array.prototype.push;
return function() {
//Do what you want here.
return original.apply(this, arguments);
};
})();

关于javascript - 如何扩展 Array.prototype.push()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572604/

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