怎样在数组处理方法中使用this

Posted aisowe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在数组处理方法中使用this相关的知识,希望对你有一定的参考价值。

回调函数中的this不做处理的话, this仍然会指向window, 解决方法有两种. 

第一种: 使用另一个变量固定this, 适用于在对象方法中使用的情况.

var obj = {
    arr: [1,2,3],
    powerArr: function(){
        var self = this;
        self.arr = self.arr.map(function (item) {
            console.log(self);
            return item**2;
        });
    }
};

obj.arr; // [1,2,3]
obj.powerArr(); // Object;
obj.arr; // [1, 4, 9]

 

下面是实际执行结果: 

技术图片

 

 

第二种: 将this作为数组处理方法的第二个参数传递进去

var obj = {
    arr: [1,2,3],
    powerArr: function(){
        this.arr = this.arr.forEach(function(item){
            console.log(this);
            console.log(item**2);
        }, this);
    }
};

技术图片

 

以上是关于怎样在数组处理方法中使用this的主要内容,如果未能解决你的问题,请参考以下文章

有人可以在快速数组中给出“如果不存在则追加”方法的片段吗?

几个关于js数组方法reduce的经典片段

ngx-translate实现国际化:this.translate.use()this.translate.get()this.translate.instant()onLangChange(代码片段

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

this 使用注意点