Javascript中JSON对象继承实现
来源:互联网 发布:java文件流转文件 编辑:程序博客网 时间:2024/05/21 22:40
1. 关于JSON对象浅拷贝的实现
1.1 函数的实现
/** *Json对象的浅拷贝 * 返回具有父类属性的新的child对象 * @param {Object} parent * @param {Object} child */function extend(parent, child) {var child = child || {};for(var prop in parent) {child[prop] = parent[prop];}return child;}
1.2 浅拷贝的实现分析
1. 初始化变量
var person = {age: 18,friends: ["xiaoming", "zhangsan"],address: {home: "home address",office: "office address"}};var programer = {language: "javascript"};
2. 进行JSON对象的浅拷贝
extend(person,programer);3. 观察父类数据修改后,子类数据的变化
3.1 programer 已经具有了person的属性内容
3.2设置 person.address.home = "home ",发现子类的内容也被改变。
2、关于JSON对象深拷贝的实现
2.1 函数的实现
/** * Json对象的深拷贝 * 返回具有父类属性的新的child对象 * @param {Object} parent * @param {Object} child */function extendDeeply(parent, child) {var child = child || {};for(var prop in parent) {//如果属性本身,就是一个数组或者Json对象,进行深拷贝if(typeof parent[prop] === "object") {//确定子对象的属性类型,[]或者{}对象child[prop] = (parent[prop].constructor === Array) ? [] : {};//实现深拷贝extendDeeply(parent[prop], child[prop]);} else {child[prop] = parent[prop];}}return child;}
2.2 深拷贝的实现分析
1. 初始化变量
var person = {age: 18,friends: ["xiaoming", "zhangsan"],address: {home: "home address",office: "office address"}};var programer = {language: "javascript"};//浅拷贝的测试 extend(person,programer);//深拷贝的测试
2. 进行JSON对象的浅拷贝
extendDeeply(person, programer);
3. 观察父类数据修改后,子类数据的变化
3.1 programer 已经具有了person的属性内容
3.2设置 person.address.home = "home ",发现子类的内容不会被改变。
1 0
- Javascript中JSON对象继承实现
- Javascript中对象继承的实现
- JavaScript中对象继承
- JavaScript中JSON对象
- javascript中实现对象继承的五种方式详解
- javascript自定义对象,实现继承
- javascript中JSON对象使用
- 在JavaScript中实现继承
- javascript实现面向对象的继承
- javaScript面向对象继承方法实现
- javascript中五种实现对象继承的方法
- javascript使用call方式实现对象继承
- javascript基础6-对象继承机制实现
- javascript 面向对象的继承的实现
- JavaScript面向对象编程(继承实现方式)
- JavaScript对象的创建和继承实现
- javascript实现面向对象中的继承模板
- Javascript实现类对象继承功能
- EditText实时监听TextWatcher的使用
- 8.Selenium2 自动化测试实战-基于Python语言-WebElement接口2
- Python 打印中文字符的三种方法
- react native 开发的app在安卓设备上运行
- 数据结构C++单链表的实现
- Javascript中JSON对象继承实现
- WiFi免费上网:是“馅饼”还是“陷阱”?
- Linux版本无法正常使用的解决方案独立说明
- MIPS汇编:冒泡排序
- 专业计算机术语中英文对照(一)
- 插入排序算法
- 各种维生素
- Android资源使用详解
- 高速数字电路AC耦合电容HFSS仿真