javascript关于继承的笔记

<script type="text/javascript">
function ClassA(){
}
ClassA.prototype.color = "red";
ClassA.prototype.sayColor = function(){
  alert(this.color);
}


function ClassB(){
}
ClassB.prototype = new ClassA();


function ClassC(){
}
ClassC.prototype.color = "yellow";
ClassC.prototype.sayColor = function(){
  alert(this.color);
}

var objB = new ClassB();
objB.color = "blue";
objB.sayColor(); // 修改了颜色值,输出blue

ClassB.prototype = new ClassC; // 修改ClassB的原形
objB.sayColor(); // 在objB创建之后修改ClassB的原形 不会 对objB有影响,依然输出blue
alert(objB instanceof ClassC); // objB也 不会 是ClassC的对象

// 只有内置对象才能极晚绑定,非内置对象不存在极晚绑定

var objC = new ClassB();

objC.sayColor(); // 在objC创建之前修改ClassB的原形 会 对objC有影响,输出yellow
alert(objC instanceof ClassC); // objC 会 是ClassC的对象

var objD = new objB(); // objB不是函数所以不能这么用
alert(typeof objD)

// 我认为function类的对象有一个隐藏的指针指向它的父类,就是说这个指针不是 prototype, prototype只是一个内存地址
</script>

posted on 2019-01-29 16:35  litandy  阅读(84)  评论(0编辑  收藏  举报

导航