补基础之javascript面向对象-非构造函数的继承
来源:互联网 发布:西甲球员数据统计 编辑:程序博客网 时间:2024/05/16 09:03
一、什么是”非构造函数”的继承?
var Chinese = { nation:'中国'};var Doctor ={ career:'医生'}
二、object()方法
//把子对象的prototype属性指向父对象,从而使得子对象与父对象连在一起function object(o) { function F() {} F.prototype = o; return new F();}//先在父对象的基础上,生成子对象:var Doctor = object(Chinese);//再加上子对象本身的属性Doctor.career = '医生';//子对象已经继承了父对象的属性了。console.log(Doctor.nation); //中国
三、浅拷贝
- 除了使用”prototype链”以外,还有另一种思路:把父对象的属性,全部拷贝给子对象,也能实现继承。
- 但是,这样的拷贝有一个问题。那就是,如果父对象的属性等于数组或另一个对象,那么实际上,子对象获得的只是一个内存地址,而不是真正拷贝,因此存在父对象被篡改的可能。
function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } c.uber = p; return c;}var Doctor = extendCopy(Chinese);Doctor.career = '医生';alert(Doctor.nation); // 中国
四、深拷贝
- 所谓”深拷贝”,就是能够实现真正意义上的数组和对象的拷贝。它的实现并不难,只要递归调用”浅拷贝”就行了。
function deepCopy(p, c) { var c = c || {}; 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;}var Doctor = deepCopy(Chinese);Chinese.birthPlaces = ['北京','上海','香港'];Doctor.birthPlaces.push('厦门');alert(Doctor.birthPlaces); //北京, 上海, 香港, 厦门alert(Chinese.birthPlaces); //北京, 上海, 香港
阅读全文
0 0
- 补基础之javascript面向对象-构造函数的继承
- 补基础之javascript面向对象-非构造函数的继承
- Javascript面向对象之非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承------------------------------非构造函数的继承
- javascript 面向对象编程非构造函数的继承
- Javascript面向对象编程:非构造函数的继承
- Javascript 面向对象编程(一):封装/构造函数的继承/非构造函数的继承
- Javascript 面向对象之构造函数的继承
- 【javascript】Javascript面向对象编程(三):非构造函数的继承
- Javascript 面向对象编程:(1)封装;(2)构造函数的继承;(3)非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- (转)Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- TabbedActivity
- mycat
- Mybatis+SQL Server使用过程中的优化
- Unity加载图片赋值给UI和模型贴图
- mysql监测工具tuning-primer.sh
- 补基础之javascript面向对象-非构造函数的继承
- python插入数据到mysql中乱码问题
- 安徽省淮南市谷歌卫星地图下载
- leetcode—Letter Combinations of a Phone Number
- Visual Studio中使用开源二维码QR库libqr
- Android下载更新(兼容7.0文件,支持5.0通知栏显示Icon)
- 像扫把星一样
- Monkeyrunner实现UI自动化
- Hadoop 2.6.4 分布式搭建