vue 使用forEach报错,this指向问题

前端APP 投稿 11500 0 评论

vue 使用forEach报错,this指向问题

vue 使用forEach的过程中,关于 this 的指向问题。


function PhpernoteChart(data {
    this.data = data;
    this.width = 0;

    this.data.list.forEach(function (item {
        if (this.width > parseInt(item.x {
            this.width = parseInt(item.x;
        }
    };
}

var a = new PhpernoteChart(data;

每一个用function声明的函数在调用时都会在函数内创建自己的this。this一般是函数所操作的对象。如果没有操作的对象。this在"use strict";严格模式下是 undefined,非严格模式下是 window。
也就是说,function声明的函数总是有自己的this。从而遮盖外层作用域中的this。
如果用es6的箭头函数(=>{}就没有自己的this。在箭头函数(=>{}中访问this,是访问外层作用域中的this


function PhpernoteChart(data {
    this.data = data;
    this.width = 0;

    this.data.list.forEach(item => {
        if (this.width > parseInt(item.x {
            this.width = parseInt(item.x;
        }
    };
}

编程笔记 » vue 使用forEach报错,this指向问题

赞同 (59) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽