Array原型even方法加参数失效,求助无参数实现方案
给Array原型添加even方法的正确实现
你不需要给这个方法加参数,因为在原型方法内部,this关键字会指向调用这个方法的数组实例。比如当你执行[1,2,3,4,5].even()时,方法里的this就是这个[1,2,3,4,5]数组。
正确的实现代码如下:
Array.prototype.even = function(){ return this.filter(item => item % 2 === 0); }
你之前尝试加arr参数但没生效,是因为调用方法时并没有传递数组参数,arr会是undefined。而原型方法的设计逻辑就是通过this来获取当前操作的对象,这是原型方法的核心特性之一。
测试一下:[1,2,3,4,5].even()会返回[2,4],完全符合需求。
内容的提问来源于stack exchange,提问作者Maolean
相关产品推荐
相关产品推荐

