zoukankan      html  css  js  c++  java
  • 面向对象

    封装

    1. 封装函数,写入参数,然后return出去
    2. 构造函数,内部使用this变量,通过使用new运算符生成实例,实例对象的constructor属性指向他们的构造函数
    3. prototype,把那些不变的属性和方法直接定义在prototype对象上,每一个构造函数都有一个prototype属性,指向另外一个对象,这个对象的所有属性和方法都会被构造函数的实例所继承。

     

    • instanceof运算符 用于验证原型对象与实例对象之间的关系;
    • hasOwnProperty('属性')方法  用于判断某一个属性到底是本地属性还是继承自prototype对象的属性;
    • in运算符 用于判断某个实例是否含有某个属性,不管是不是本地属性,,,,,还可以用于遍历某个对象的所有属性。 for in。

    构造函数的继承

    对象之间的‘继承方法’

    1. 构造函数的绑定,通过call或apply方法
    2. prototype模式,A的原型对象指向B的实例,A则可以继承B
    3. 直接继承prototype,A的原型对象指向B的原型,(优:效率较高,省内存;缺:A的原型修改会反映到B的原型)
    4. 利用空对象作为中介,B的原型指向C的原型,A的原型指向B的实例
    5. 拷贝继承,将B的原型的属性和方法循环遍历赋给A的原型
    • 任何一个原型对象都有一个constructor属性,指向它的构造函数
    • 每一个实例也有一个constructor属性,默认调用prototype对象的constructor属性
    • 如果替换的A的原型对象 则必须为新的原型对象加上constructor属性,并将这个属性指回原来的构造函数

    非构造函数的继承

    1. object函数  即把子对象的prototype属性指向父对象
    2. 浅拷贝 把父对象的属性全部拷贝给子对象
    3. 深拷贝
    • 浅拷贝会出现问题,如果父对象的属性为数组或者另外一个对象,那么实际上子对象获得的只是一个内存地址,而不是真正拷贝

    参考文章:

  • 相关阅读:
    CNN做序列标注问题(tensorflow)
    对于梯度消失和梯度爆炸的理解
    LSTM(长短期记忆网络)及其tensorflow代码应用
    Python之禅
    Python namedtuple
    Linux里的2>&1
    PySpark笔记
    平衡二叉树,B树,B+树
    lzo文件操作
    Hadoop的Shell命令
  • 原文地址:https://www.cnblogs.com/fire-passiontao/p/5938923.html
Copyright © 2011-2022 走看看