zoukankan      html  css  js  c++  java
  • javascript 继承


    function inherit(p){
    if(p == null) throw TypeError(); //p是一个对象, 但不能是null
    if(Object.create) //如果Object.create()存在
    return Object.create(p); //直接使用它
    var t = typeof p; //否则进一步检测
    if(t !== "Object" && t !== "function" ) throw TypeError();
    function f() {}; //定义一个空构造函数
    f.prototype = p; //使用f()创建p的继承对象
    return new f();
    }

    var o = {}; //o 从 Object.prototype 继承对象的方法
    o.x = 1; //给o定义一个属性x
    var p = inherit(o); //p继承o和Object.prototype
    p.y = 2; //给p定义属性y
    var q = inherit(p); //q继承p, o 和Object.prototype
    q.z = 3; //给q定义一个属性z
    var s = q.toString();
    console.log(s);

    var z = q.x + q.y; //q.x 访问奶奶o的x属性 q.x = 1, q.y访问了妈妈p的属性y. q.y = 2 所以结果为3
    console.log(z);

    console.log(o.y); //undefined 妈妈o不能访问儿子p的属性y


    /*

    个人理解:

    p继承了o, o是p的妈妈, p是儿子.
    o.x可以set o的属性x.
    p.x可以get o的属性x.
    p.y也可以set 自己的属性y

    o.y妈妈不能get儿子的属性y

    */

  • 相关阅读:
    linux-centos7 安装 maven 代码管理工具,以及常见配置
    linux-centos7 安装 jre + tomcat 实现 web 服务器
    python 开发语言 博客目录
    生存分布函数
    债务偿还
    密度聚类算法
    POI兴趣点搜索
    区域地址搜索
    地址之间的距离
    地理坐标转换
  • 原文地址:https://www.cnblogs.com/facial/p/5101624.html
Copyright © 2011-2022 走看看