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>