概述
JavaScript 中的所有事物都是对象。JavaScript 是面向对象的语言,但 JavaScript 不使用类。在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。JavaScript 基于 prototype,而不是基于类的。
/** * 对象拷贝 * http://www.cnblogs.com/yichengbo/archive/2014/07/10/3835882.html */function testObjectClone() { ???debugger; ???var clone = function(source) { ???????var result = {}; ???????for(var key in source) { ???????????result[key] = typeof source[key] === ‘object‘ ? deepCoyp(source[key]) : source[key]; ???????} ???????return result; ???} ???var obj0 = { ???????aaa: "aaa", ???????bbb: "bbb" ???} ???var obj1 = clone(obj0); ???obj1.aaa = "ccc";}/** * Map类型实现 * ??http://www.cnblogs.com/superjt/archive/2012/12/21/2827742.html */function testVirtualMapObject() { ???debugger; ???var mArr = {}; ???mArr["A01"] = "AAA"; ???mArr["A02"] = "BBB"; ???mArr["A03"] = "CCC"; ???mArr["A03"] = "DDD"; ???mArr["A03"] = null; ???delete mArr["A03"]; ???delete mArr["A03"]; ???mArr.pop("A03");}/** * Array类型对象测试 * ??http://www.w3school.com.cn/jsref/jsref_obj_array.asp */function testArrayObject() { ???debugger; ???var mArr = []; ???var str0 = "AAA"; ???var str1 = "BBB"; ???mArr[0] = str0; ???mArr[1] = str1; ???mArr.push(str1); ???mArr.pop();}/** * 基本对象类型测试 * ??http://www.w3school.com.cn/js/js_objects.asp */function testObject() { ???debugger; ???// 创建对象的方式 ???var obj0 = {}; ???var obj1 = new Object(); ???// 访问对象属性 ???obj0.property = "AAA"; ???obj0.name = "BBB"; ???console.log(obj0.property); ???console.log(obj0["property"]); ???// 删除对象属性 ???delete obj0.name; ????// 使用对象构造器 ???var person = new Person("Wang", "999"); ????// 遍历对象属性 ???for(prop in person) { ???????console.log(prop); ???} ????console.log(closeObj.getName());} // 构造器函数function Person(name, age) { ???this.name = name; ???this.age = age;} // prototypePerson.prototype.birthday;Person.prototype.address = "CCC"; // 闭包var closeObj = { ???name : "AAA", ???getName : function (){ ???????return this.name; ???}};
参考:
JavaScript 对象 w3c
js之对象(经典) 全面
关于给javascript对象添加、删除、修改对象的属性
js 对象类型
原文地址:http://www.cnblogs.com/zhen-android/p/7634022.html