
























转帖http://www.cnblogs.com/wangwei123/archive/2010/05/12/1733084.html
javascript中的对象创建声明:var obj = {}; 或者 var obj = new Object();
为对象加入属性,方法:
//=====第一种写法====================================obj.name
= '小明'; //为对象加属性alert(obj.name);
obj.updateName(
"小强"); //调用updateName修改obj对象的name属性值第一次显示结果为:小明
第二次显示结果为:小强
//=====第二种写法====================================alert(obj.name);
obj.updateName(
'李四'); //调用updateName修改obj对象的name属性值第一次显示结果为:张三
第二次显示结果为:李四
//=====第三种写法====================================alert(obj .name);
obj.updateName(
"赵六"); //调用updateName修改obj对象的name属性值第一次显示结果为:王五
第二次显示结果为:赵六
//=====分析=====================================在程序运行并创建对象后,还可以对该对象的内部结构进行修改,
比如添加属性和方法(java和.net中的反射机制做不到这点)。
(a):
var obj = {} || new Object();(b):obj.name
= "张三";(c):obj.updateName
= function(name){ this.name = name};当程序执行(a) 后,便创建了一个空对象(不包含任何方法和属性)obj,
当程序执行(b) 后,改变了obj的内部结构,加了一个属性name,
当程序执行(c) 后,改变了obj的内部结构,加了一个方法updateName ,
而这都是在运行的时候完成的动作
第二种写法像数组,但绝不是数组,区分是不是数组可以如此判断:
if(typeof(obj.length) == "undefined") {第二种写法更像一种数据结构:map ,如:obj[key]
= value;key是字符串,value可以是任何类型,变量,对象,函数等。
可以通过这种方式遍历对象内部结构:
for(var key in obj) alert(value);
}
通过alert可以显示出你所定义的内容。
第三种写法一看就是map的内部结构了,一个对象,内部完全用key : value键值对方式表示
JSON对象也是这种结构,只要对map或者JSON对象有所熟悉的就很容易理解了。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。