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);
时间: 2024-10-17 12:10:08

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

都市白领租房APP定制解决了哪些找房的痛点

现在的都市白领主要是以租房为主,传统找房子存在很多的痛点,要么是朋友介绍,要么就是自己去找.自己找的话,需要专门空一天时间来找,一般都是很盲目地去找的,在想住的地区看到有挂着房东电话号码以及粗略的住房信息的牌子,然后打电话过去咨询,有合适的再去看房,没合适的就接着打下一个电话,这是找城中村房子的方式.还有一种是找小区房子,一般不会在外贴住房信息的,你需要找到房地产中介,让中介帮你找,找到后要给中介付房租一般的中介费用,想想都肉疼.但是互联网APP出现之后,找房子直接线上找,下载一个租房APP就可

eclipse-java-2018-09-win32-x86_64配置tomcat(内含更新eclipse,如何解决添加时找不到最新tomcat版本)

我下的是eclipse精简版,建议下载企业版,可以省略后面的很多步骤(其中的辛酸...) 这里就是说明下载精简版的eclipse如何配置tomcat的步骤,其实还是更新eclipse的步骤 1.首先点击windows中的preferences 2.打开preferences中的server 3.打开runtime environment 4.我下载的是tomcat8.5所以选择tomcat8.5,然后点击finish,tomcat已经配置到eclipse中了,打开eclipse可以创建web工程

MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('aaaa'

解决Extjs有IE下z-index属性的问题

在用Extjs时,有时候,在Google浏览器上面没有任何问题,但是相同的页面在IE下面就会有问题,直接报错,点击中断,进行后可以看到如下的信息: Google里面没这个问题,加一句代码就能解决在窗体的构造函数里面加上一行代码  style: 'z-index: -1;', 以后如果出现类似的问题,如果中断,进去后看到如下的提示,并且google中没有问题,那么就加上这么一行代码,具体原因还不清楚,但是这行代码可以解决这个问题 解决Extjs有IE下z-index属性的问题

MyBatis——解决字段名与实体类属性名不相同的冲突

原文:http://www.cnblogs.com/xdp-gacl/p/4264425.html 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSER

Mybatis解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, order_price) VALUES('aaaa'

Eclipse的PyDev插件安装及解决安装后找不到的问题

一.环境 windows 7 64bit eclipse 4.5.2 pydev jdk7u55 二.安装步骤 1. 安装JDK eclipse依赖于Java环境,所以需要安装Java运行环境JRE.由于JDK既包含了JRE,又可以用来做开发.直接下载jdk安装.我安装的是JDK 7. 地址:http://www.java.com/zh_CN/download/ 具体安装jdk的教程,请自行百度. 2. 安装eclipse eclipse下载地址在这里:http://www.eclipse.or

巧妙解决Win10专业版找不到无线网络设置的办法

Win10专业版下找不到无线网络设置的具体解决技巧由系统天地官网率先分享!第一步.打开控制面板,找到网络和internet,如图所示:第二步.点击网络和共享中心→设置新的连接或网络,如图所示:第三步.点击连接到internet→下一步→是,选择现有的连接→下一步,如图所示:第四步.然后在炸金花界面中,点击飞行模式,将飞行模式关闭,打开无线设备即可,如图所示:以上就是Win10专业版找到不到无线网络设置的解决方法,有出现这情况的用户可以参考文中方法进行修复,希望今天的分享对大家有所帮助.

Activiti系列:如何把Activiti工程转换为maven工程以解决依赖项找不到的问题

在eclipse中安装了Activiti插件之后,就可以新建Activiti工程,但是在实际使用时发现,在该工程中间新建Activiti Diagram,绘制好该图形之后,右键,新建单元测试,选择junit4类型, 1. 创建Activiti工程 2. 新建Activiti Diagram 3. 绘制如下流程 4. 创建该bpmn图形的单元测试 5. 然后单元测试代码就报如下的各种找不到类型的错误 6. 如果是maven的项目,一般可以通过如下方式解决 7. 但是在Activiti类型的工程中,