js 对象类型
概述
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;
}
// prototype
Person.prototype.birthday;
Person.prototype.address = "CCC";
// 闭包
var closeObj = {
name : "AAA",
getName : function (){
return this.name;
}
};
参考:
JavaScript 对象 w3c
js之对象(经典) 全面

浙公网安备 33010602011771号