zoukankan      html  css  js  c++  java
  • JavaScript 继承机制小记

    读《JavaScript: the good parts》, 关于对象继承这块小记一笔:

    function Base(v){
        this.baseValue = v;
        this.getBaseValue = function(){
            return this.baseValue;
        };
    }
    
    function TestObject(base, c){
        var temp = function(){
            this.content = c;
            this.fromBaseValue = function(){
                return this.baseValue;
            };
        };
    
        temp.prototype = base;
    
        return new temp();
    }
    
    var b1 = new Base(1);
    
    var t1 = new TestObject(b1, 'this is t1');
    var t2 = new TestObject(b1, 'this is t2');
    
    console.log('t1', {'baseValue':t1.baseValue, 'fromBaseValue()': t1.fromBaseValue(), 'getBaseValue()':t1.getBaseValue()})
    console.log('t2', {'baseValue':t2.baseValue, 'fromBaseValue()': t2.fromBaseValue(), 'getBaseValue()':t2.getBaseValue()})
    //t1 { baseValue: 1, 'fromBaseValue()': 1, 'getBaseValue()': 1 }
    //t2 { baseValue: 1, 'fromBaseValue()': 1, 'getBaseValue()': 1 }
    
    b1.baseValue = 2
    
    console.log('t1', {'baseValue':t1.baseValue, 'fromBaseValue()': t1.fromBaseValue(), 'getBaseValue()':t1.getBaseValue()})
    console.log('t2', {'baseValue':t2.baseValue, 'fromBaseValue()': t2.fromBaseValue(), 'getBaseValue()':t2.getBaseValue()})
    //t1 { baseValue: 2, 'fromBaseValue()': 2, 'getBaseValue()': 2 }
    //t2 { baseValue: 2, 'fromBaseValue()': 2, 'getBaseValue()': 2 }
    
    t1.baseValue = 3;
    //If we try to retrieve a property value from a object, and if the object lacks the property name,
    //then JavaScript attemps to retrieve the property value from the prototype object.
    console.log('t1', {'baseValue':t1.baseValue, 'fromBaseValue()': t1.fromBaseValue(), 'getBaseValue()':t1.getBaseValue()})
    console.log('t2', {'baseValue':t2.baseValue, 'fromBaseValue()': t2.fromBaseValue(), 'getBaseValue()':t2.getBaseValue()})
    //t1 { baseValue: 3, 'fromBaseValue()': 3, 'getBaseValue()': 3 }
    //t2 { baseValue: 2, 'fromBaseValue()': 2, 'getBaseValue()': 2 }
    
    b1.baseValue = 4
    
    console.log('t1', {'baseValue':t1.baseValue, 'fromBaseValue()': t1.fromBaseValue(), 'getBaseValue()':t1.getBaseValue()})
    console.log('t2', {'baseValue':t2.baseValue, 'fromBaseValue()': t2.fromBaseValue(), 'getBaseValue()':t2.getBaseValue()})
    //t1 { baseValue: 3, 'fromBaseValue()': 3, 'getBaseValue()': 3 }
    //t2 { baseValue: 4, 'fromBaseValue()': 4, 'getBaseValue()': 4 }
  • 相关阅读:
    寒假练习集中贴
    7-49 打印学生选课清单 (25分)
    7-47 打印选课学生名单 (25分)
    进阶实验5-3.3 基于词频的文件相似度 (30分)-哈希
    进阶实验5-3.4 迷你搜索引擎 (35分)-哈希
    7-24 树种统计 (25分)-二叉排序树or快速排序
    7-25 朋友圈 (25分)-并查集
    进阶实验6-3.4 拯救007(升级版) (30分)-BFS
    基础实验6-2.3 拯救007 (25分)-DFS
    进阶实验4-3.5 哈夫曼编码 (30分)-最优二叉树
  • 原文地址:https://www.cnblogs.com/straybird/p/3158723.html
Copyright © 2011-2022 走看看