我试图通过使用dot(。)运算符而不是作为参数发送,使用户定义的函数在变量上起作用。因此,在我的程序中,我有一个整数数组,我需要对每个整数进行执行,而不要使用forEach内置函数。我知道这听起来很垃圾。所以我创建了一个名为somefunc的函数,并有一个名为arr的变量。
我完成的代码
var somefunc = function()
{
console.log('this function executed');
}
var arr=[1,2];
arr.somefunc();
我要模仿的代码
var friends = ["Mike", "Stacy", "Andy", "Rick"];
friends.forEach(function (eachName, index){
console.log(index + 1 + ". " + eachName); // 1. Mike, 2. Stacy, 3. Andy, 4. Rick
});
我想执行forEach之类的功能。
答案 0 :(得分:-1)
您应该在此处使用原型。将somefunc
添加到内置Array类型的JS原型中。
Array.prototype.somefunc = function() {
this.forEach(function (eachName, index) {
console.log(index + 1 + ". " + eachName);
});
// or you can use other ways to itarate over all array elemets
// like a simple for loop for (let i=0; i < this.length; i++) {...}
// 'this' here refers to an array you are running somefunc on
}
var friends = ["Mike", "Stacy", "Andy", "Rick"];
friends.somefunc();
forEach
的{{1}}中也存在map
,prototype
等每个函数,它们是Array
的属性。您可以通过执行prototype
来查看它。您可以看到console.log(Array.prototype);
的{{1}}具有许多内置方法供您使用,您可以使用点来调用它们。因此,您只需通过向prototype
分配一个新的函数属性即可将自己的函数与它们一起添加,如上面的代码片段所示。
答案 1 :(得分:-1)
尝试将函数添加到数组原型以创建所需的行为。使用此访问当前数组。
Array.prototype.customIterator = function() {
// this.forEach(() => {})
}