1function logs(obj){document.write(obj+"<br/>");} //打印log日志 2 3//继承 4//继承可以通过原型链来实现 5//解释器会在对象中查找该属性,如果 6//没有找到,则在其内部对象 prototype 对象上搜索,由于 prototype 对象与对象本身的结 7//构是一样的,因此这个过程会一直回溯到发现该属性,则调用该属性,否则,报告一个错误。 8function Base(){ 9 var name = "josn"; 10 this.baseFunc = function(){ 11 logs("base behavior"); 12 } 13 this.getName = function(){ 14 return name; 15 } 16} 17function Middle(){ 18 this.middleFunc = function(){ 19 logs("middle behavior"); 20 } 21} 22Middle.prototype = new Base();//原型上进行继承 23var mid = new Middle(); 24mid.middleFunc(); //自有函数 25mid.baseFunc(); //继承自父类 Base 26 27//引用 28// 引用始终指向最终的对象,而并非引用本身 29var obj = {};//空对象 30var ref = obj;//引用 31obj.name = "objectA"; 32logs(ref.name);;//objectA ref跟着添加了name属性 33obj.name = "objectB"; //修改原始的那个对象会影响到其引用上,这一点也应该注意。 34 35obj = ["one","two","three","d"]; 36obj.name = "objectC"; 37logs(ref.name);/*objectA ref还指向原来的对象*/logs(obj.length);//4 数组的长度 38//obj 只是对一个匿名对象的引用,所以,ref 并非指向它,当 obj 指向另一个数组对象时 39//可以看到,引用 ref 并未改变
JavaScript 学习笔记八 继承与引用
Stella981
2021-10-11
1171 0 0
点赞
收藏
评论区
加载中...