zoukankan      html  css  js  c++  java
  • js-JavaScript高级程序设计学习笔记4

    第六章 面向对象的程序设计

    1、面向对象的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。如python。ES中没有类的概念。

    2、ES的对象可以想象成散列表:无非就是一组名值对,其中值可以是数据或函数。每个对象都是基于一个引用类型创建的。

    3、ES对象中有两种属性:数据属性和访问器属性。

    4、访问器属性不包含数据值,它们包含一对getter和setter函数。

    5、使用Object.defineProperties()可以定义多个属性及其特性。

    6、使用Object.getOwnPropertyDescriptor()方法可以获得属性的特性,返回是一个对象。只能用于实例属性,要想取得原型属性的描述符,必须直接在原型对象上调用。

    7、构造函数和普通函数的唯一区别,在于调用方式不同。任何函数,通过new操作符调用,那么它就可以作为构造函数。

    8、调用对象的属性时,进行两步搜索——先搜索实例,如果没有这个属性再搜索原型。这就是多个对象实例共享原型所保存的属性和方法的基本原理。P148

    9、当为对象实例添加一个属性时,这个属性就会屏蔽原型对象中保存的同名属性,只会阻止我们访问原型中的那个属性,但不会修改原型属性。

    10、单独使用时,in操作符会在通过对象能够访问指定属性是返回true,不论是存在于实例中还是原型中。配合hasOwnProperty()方法可以确定该属性到底存在于实例中还是原型中。

    1 function hasPrototypeProperty(object,name){
    2     return !object.hasOwnProperty(name)&&(name in object);
    3 }

    11、使用Object.keys()和Object.getOwnPropertyNames()方法可用来替代for-in循环来取得对象上的实例属性。前着取得的是可枚举属性,后者是所有。

    12、实例中的指针只指向原型,不指向构造函数。重写原型时需谨慎。

    13、创建自定义类型最常见的方法是组合使用构造函数和原型模式,构造函数用于定义实例属性,原型模式用于定义方法和共享的属性

    14、寄生组合式继承是引用类型最理想的继承范式。P172。

  • 相关阅读:
    【Luogu】P3381最小费用最大流模板(SPFA找增广路)
    【Luogu】P1393动态逆序对(树套树)
    【Luogu】P2617Dynamic Ranking(树状数组套主席树)
    【Luogu】P2953牛的数字游戏(博弈论)
    【Luogu】P2530化工厂装箱员(DP)
    【Luogu】P3856公共子串(DP)
    【Luogu】P3847调整队形(DP)
    【Luogu】P3567Kur-Couriers(主席树)
    【Luogu】P3758可乐(矩阵优化DP)
    【Luogu】P1131时态同步(树形DP)
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6102061.html
Copyright © 2011-2022 走看看