typescript的lambads解决this关键字找不到属性

复制代码
var people = {
    name: ["abc", "jack", "pepter", "jim"],
    getname: function() {
        
        return function () {
            var i = Math.floor((Math.random() * 4));
            return {
                n: this.name[i]
            };
        };
    }
};
var myName = people.getname();

alert("name is "+myName().n);
复制代码

上面代码其实,打印的是 nams is undefiend ,因为返回的函数里面的this 不是people里面的this,

1 typescript可以用lambads表达式修改

上图中就是使用lambads表达式解决找不到this问题。

2 如果是用js可以像下面这样修改

复制代码
var people = {
    name: ["abc", "jack", "pepter", "jim"],
    getname: function() {
        var name2 = this.name;
        return function () {
            var i = Math.floor((Math.random() * 4));
            return {
                n: name2[i]
            };
        };
    }
};
var myName = people.getname();

alert("name is "+myName().n);
复制代码

 

posted on   c3tc3tc3t  阅读(1041)  评论(0编辑  收藏  举报
努力加载评论中...

点击右上角即可分享
微信分享提示