如何将用户定义的函数应用于变量,就像内置函数一样?
Posted
技术标签:
【中文标题】如何将用户定义的函数应用于变量,就像内置函数一样?【英文标题】:how to apply user defined function on variables just like built in function? 【发布时间】:2018-11-02 09:50:29 【问题描述】:我正在尝试使用 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 的函数。
【问题讨论】:
【参考方案1】:尝试将您的函数添加到数组 proptotype 以创建所需的行为。使用 this 访问当前数组。
Array.prototype.customIterator = function()
// this.forEach(() => )
【讨论】:
【参考方案2】:你应该在这里使用原型。将somefunc
添加到一个JS内置Array类型的原型中。
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
、map
等每个函数也存在于Array
的prototype
中,它们是prototype
的属性。你可以通过console.log(Array.prototype);
看到它你可以看到Array
的prototype
有许多内置方法可供你使用,你可以使用点来调用它们。因此,您只需通过将新函数属性分配给Array.prototype
来添加您自己的函数,如上面的 sn-p 所示。
【讨论】:
以上是关于如何将用户定义的函数应用于变量,就像内置函数一样?的主要内容,如果未能解决你的问题,请参考以下文章