js一百零一夜之第十夜-javascript 的非构造函数继承
来源:互联网 发布:网络数据抓取工具 编辑:程序博客网 时间:2024/06/08 13:15
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>非构造函数的继承</title>
<script>
//有两个对象
/* var Chines={
"type":"中国人"}var doctor={"position":"医生"}
////第一种对象继承法:实际上将父对象赋值给子对象prototype属性
function object(o){
var F=function(){}F.prototype=o;return new F();}
var doctor=object(Chines);
doctor.position="医生";
alert(doctor.type);*/
//第二种 浅拷贝:只能拷父对象的属性,而如果父对象的属性是数组和方法时候子对象获得的只是一个内存地址,而不是真正的拷贝
//因此存在父对象被篡改的可能。
/*var Chinese = {
nation:'中国'
};
var Doctor ={
career:'医生'
}
Chinese.birthPlaces = ['北京','上海','香港'];
function extend(Child,Parent){
var c=Child;
var p=Parent;
for(var i in p){
c[i]=p[i];
}
return c;
}
var obj =extend(Doctor,Chinese);
alert(obj.birthPlaces);//北京,上海,香港
obj.birthPlaces.push("武汉");
alert(Chinese.birthPlaces);//北京,上海,香港,武汉*/
//这种拷贝是限用于只有单一属性的拷贝
//第三种深拷贝,所谓深拷贝就是真正意义上实现父类数组和对象的拷贝,他的实现并不难只是递归调用了浅拷贝而已
var Chinese = {
nation:'中国'
};
var Doctor ={
career:'医生'
}
Chinese.birthPlaces = ['北京','上海','香港'];
function deepCopy(p,c){
try{
var c=c || {};
var p=p;//被拷贝的对象
for(var i in p){
if(typeof p[i]==="object"){
c[i]=(p[i].constructor==Array) ? [] :{};
deepCopy(p[i],c[i]);
}else{
c[i]=p[i];
}
}
return c;
}catch(e){alert(e)}
}
var Doctor=deepCopy(Chinese);
alert(Doctor.birthPlaces);//北京,上海,香港
Doctor.birthPlaces.push("广州");
alert(Chinese.birthPlaces);//北京,上海,香港
alert(Doctor.birthPlaces);//北京,上海,香港,广州
//这样子对象的变化对父对象没有影响,so-easy
</script>
</head>
<body>
</body>
</html>
0 0
- js一百零一夜之第十夜-javascript 的非构造函数继承
- js一百零一夜之第十一夜-javascript 的构造函数继承
- Javascript面向对象之非构造函数的继承
- js一百零一夜之第九夜-javascript 匿名函数
- (转)JavaScript非构造函数的继承
- js非构造函数的继承
- js一百零一夜之第七夜-javaScript this 的用法
- Javascript面向对象编程(三):非构造函数的继承------------------------------非构造函数的继承
- 补基础之javascript面向对象-非构造函数的继承
- js一百零一夜之第十六夜之 javaScript 闭包函数
- Javascript 面向对象编程(一):封装/构造函数的继承/非构造函数的继承
- javascript 面向对象编程非构造函数的继承
- Javascript面向对象编程:非构造函数的继承
- JavaScript学习笔记_非构造函数的继承
- js--面向对象--非构造函数的继承
- js 非构造函数的继承 object()方法
- js一百零一夜之第四夜-call的用法及call实现继承
- javascript 的 继承(二) 之 借用构造函数继承
- 关于gcc中函数或变量的weak属性
- WindowsPhone8 ListBox 实现手风琴折叠菜单效果
- 黑马程序员_考核技术日志2_IO篇之字符流的处理进程及字符流的缓冲区
- Session,有没有必要使用它?
- 面对对象的语言的三大特征
- js一百零一夜之第十夜-javascript 的非构造函数继承
- linux3.0.1内核启动分析
- VS2010添加Visual Assist 扩展
- python 运行时输出参数问题
- 使用HttpURLConnection下载文件
- SDUT 最短路
- linux0.11相关进程数据结构
- ANR(Application Not Responding)
- form表单的各种input的submit传值