您的位置:首页 > Web前端 > JavaScript

JavaScript 学习笔记八 继承与引用

2017-05-09 00:00 381 查看
function logs(obj){document.write(obj+"<br/>");}   //打印log日志

//继承
//继承可以通过原型链来实现
//解释器会在对象中查找该属性,如果
//没有找到,则在其内部对象 prototype 对象上搜索,由于 prototype 对象与对象本身的结
//构是一样的,因此这个过程会一直回溯到发现该属性,则调用该属性,否则,报告一个错误。
function Base(){
var name = "josn";
this.baseFunc = function(){
logs("base behavior");
}
this.getName = function(){
return name;
}
}
function Middle(){
this.middleFunc = function(){
logs("middle behavior");
}
}
Middle.prototype = new Base();//原型上进行继承
var mid = new Middle();
mid.middleFunc();   //自有函数
mid.baseFunc();    //继承自父类 Base

//引用
//     引用始终指向最终的对象,而并非引用本身
var obj = {};//空对象
var ref = obj;//引用
obj.name = "objectA";
logs(ref.name);;//objectA ref跟着添加了name属性
obj.name = "objectB"; //修改原始的那个对象会影响到其引用上,这一点也应该注意。

obj = ["one","two","three","d"];
obj.name = "objectC";
logs(ref.name);/*objectA   ref还指向原来的对象*/logs(obj.length);//4 数组的长度
//obj 只是对一个匿名对象的引用,所以,ref 并非指向它,当 obj 指向另一个数组对象时
//可以看到,引用 ref 并未改变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: