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。

  • 相关阅读:
    Innodb之线程独享内存
    Innodb之全局共享内存
    mysql三层体系
    grep/字符/次数匹配/锚定符/小大括号/wc/tr/cut/sort/uniq
    Mysql多字段模糊查询
    小程序中使用less(最优方式)
    js控制文本框只能输入中文、英文、数字与指定特殊符号
    连接 MySQL 数据库出现问题:The server time zone value ‘�й���׼ʱ��‘ is unrecogni....
    Mysql聚簇索引和非聚簇索引
    npm run dev 和 npm run serve
  • 原文地址:https://www.cnblogs.com/zczhangcui/p/6102061.html
Copyright © 2011-2022 走看看