码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-03-14 15:04:21      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

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);

 

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

标签:

原文地址:http://www.cnblogs.com/or2-/p/4337451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!