• 使用 this 关键字定义方法和属性


    1、方法和属性的定义

    属性是类中声明的变量,与其他地方变量的声明基本相同,只是属性必须 this 关键字,并且这里没有var 关键字。

    this.age;

    在使用时,先是 this 关键字,之后的点语法连接的是方法名,就像是声明一个匿名函数,只不过属于 this 关键字。

    参数 arg_1,arg_n等都是该方法使用的参数,参数之间使用逗号隔开,这也被称为参数列表。在参数后的花括号{},即为整个方法的内容。

    方法如有返回值,使用 return 返回。

    2、属性的初始化

    当为类定义一个属性时,可以为属性赋值,称为属性的初始化。属性在定义时也可以没有初始值。

    3、在类体内使用 this 关键字

    在类内,如果要访问该类定义的方法或属性,必须使用 this 关键字,它表示类的实例自身,使用它可以引用当前代码的类的特定实例。

    this 的行为与引用当前类的实例的变量类似。

    4、易犯的错误

    在方法内嵌入的函数形成一个新的运行环境,在该内嵌函数内使用 this 并不会指向对象的实例,而是指向全局对象 window。

    function Foo(){}

    Foo.prototype.method = function(){

     function test(){

      alert(this);

      // this 在这个对象里是全局函数

     }

     test();

    }

    var foo = new Foo();

    foo.method();

    要在嵌入的函数内使用 this,那么最好的是用一个中间变量,比如:

    function Foo(){}

    Foo.prototype.method = function(){

    var that = this;

    function test(){

      alert(that === foo );

      //that 在这个函数里是 foo对象

    }

    test();

    }

    var foo = new Foo();

    foo.method();

     对于静态方法,存在相同的问题,使用相同的办法解决。

     

    5、闭包方法(绑定方法)内的 this 关键字

     如果在闭包方法中使用 this 关键字要非常小心。闭包方法并不能确保 this 关键字总是引用在其中定义了方法的对象或类。

     

    6、另外一个 使用 this 易犯的错误。

    this 指向它执行的环境,如果构造方法不是使用 new 运算符创建实例,而是直接像调用函数那样调用,那么this关键字就不会代表该类的实例。

  • 相关阅读:
    iso下载不完整,无论什么方式下载一定要校验md5码
    NR/NT,Taxonomy和RefSeq——三种NCBI常见数据库
    微生物群落多样性测序与功能分析
    分子伴侣
    细菌或真菌菌种鉴定中的16S rRNA,18S rRNA等
    tmRNA的结构和功能
    神秘的细菌基因组:GC skew
    由浅入深理解 IOC 和 DI
    详细分析 Java 中启动线程的正确和错误方式
    详细分析 Java 中实现多线程的方法有几种?(从本质上出发)
  • 原文地址:https://www.cnblogs.com/chengmingxiaowu/p/7686456.html
Copyright © 2020-2023  润新知