zoukankan      html  css  js  c++  java
  • 一、javascript中的类

    1.找出对象的构造器----constructor/instanceof

    constructor是用模版实例化对象的时候附带的一个额外属性,这个属性指向创建该对象时所使用的javascript构造函数。

    用法:

    var house = new Accommodation();
    
    house.constructor === Accommodation;    //true

    这中比较也可以用关键字instanceof来完成,

    var house = new Accommodation();
    apartment instanceof Accomodation;   //true 

    2.通过原型添加属性和方法

    javascript中的每个函数,即每个构造器,都有一个叫prototype的属性。我们用关键字new来创建一个“类”的对象实例时,实例中所包含的属性和方法都来自prototype。

    可以用点标记法直接量标记法为一个模版的所有对戏那个实例添加自定义的属性和方法。

    点标记法:

    //定义一个名为Accommodation的构造函数
    function Accommodation(){}
    
    //为这个“类”添加属性
    Accommodation.prototype.floor = 0;
    Accommodation.prototype.rooms = 0;
    Accommodation.prototype.shareEntrance =false;

    直接量标记法:

    //定义一个名为Accommodation的构造函数
    function Accommodation(){}
    
    //通过对象直接量为这个“类”添加属性和方法
    Accommodation.prototype = {
    floors:0,
    rooms:0,
    sharedEntrance:false,
    lock:function(){},
    }

    prototype这个属性关键字有一个强大的特性是允许在对戏那个实例已经被创建后继续添加属性和方法,而这些新添加的属性和方法会自动添加到所有对象实例中,不管是已创建的还是将要创建的。

    3.通过作用域添加属性和方法

    如果将一个变量或函数定义在任何一个函数之外,直接将其放在一个javascript或者HTML文件里,那么这个变量或函数会被添加到全局作用域中,这意味着在代码的任何位置都能够使用该变量或函数,甚至在其他函数体内也可以。

    4.上下文和this关键字

    使用this的好处:可以随意改变对象的变量名而不用担心对象中方法的行为收到影响。

    上下文环境:在大多数情况下指的是函数运行时封装这个函数的那个对象;当不通过任何一个对象单独调用时,上下文环境值得就是全局的window对象。

    注意:对象中的潜逃函数其上下文环境是全局的window对象,而非包含它的那个对象,可以在this指向包含这个函数的对象时,将this的值保存在一个变量中,然后在用到该对象时,用这个变量来代替。比如用变量名为:that

      在使用new关键字创建对象时,this执行的值和一般情况下又有区别。this指向的是通过构造函数所创建的那个对象实例。正是因为这个特性,我们得意在构造函数中通过this来设置所有对象实例的属性和方法,而非像之前那样使用prototype关键字。

      结合prototype和this关键字来定义对象实例的属性和方法,其中前者定义方法,后者来定义属性。

    5.方法的链式调用

    如果希望能够对方法进行链式调用,则需要在“类”中的方法最后通过this关键字返回对象实例的引用即可。

  • 相关阅读:
    【凸优化】【长链剖分】【2019冬令营模拟1.8】tree
    2019冬令营集训1月7-10日总结
    item()方法遍历字典
    contiue和break的用法
    内存地址与变量值的关系
    Python垃圾回收机制
    Python的小整数池
    常量的命名和注意事项
    基本运算符
    Python中最简单快捷的输出方式
  • 原文地址:https://www.cnblogs.com/but-he/p/6161101.html
Copyright © 2011-2022 走看看