创建Object实例两种方法:
①用 new 加Object构造函数
var person =new Object();
person.name='lxf';
person.age=20;
②对象字面量表示法(花括号)
var person = {
"name":"lxf",
"age":"20"
}
关于对象字面量表示法的细节:
①花括号出现在表达式语句赋值操作符后面,表示后面是一个“对象的开始”;对比if语句后的花括号表示“语句块的开始”;
②对象字面量表示法中最后一个属性不能最后不加逗号,如果加了会在IE7及其以下版本和 Opera中报错;
③在对象字面量表示法的另外一种创建方式 var person={ }; 与 var person =new Object();类似 ,区别如下第四条;
④在对象字面量表示法创建对象时不会调用Object构造函数(可提高效率,有利于JS优化);
⑤用对象字面量表示法给函数传参:虽然命名参数容易处理,但多个可选参数的情况显示不够灵活,推荐"传参单个数值"用命名参数,
传参多个可选参数用字面量表示法封装,如下
function display(arg){ }
var person="lxf";
display(person);
display({"name":"lxf","age":"20"});
访问对象属性的两种方法:
①JS同许多其他语言一样访问对象时一般用 “object . 属性名”的方法。
②JS允许把属性名用 object[ "属性名"] 的方式访问成员属性
方括号的两条优点:
<1>通过变量访问属性,如上的person 对象:
var userName= "name";
alert(person[userName]);//lxf
这种方法在调用动态变化的属性名时非常有用,如 从后台返回的JSON数据中读取变量属性,此时属性名不确定,可以把它读出来赋值给变量然后访问。
<2>属性名包含可能引起错误的字符(非数字非字母,如空格和其他符号)时不能用点的方法,只能采用[ ];
如 alert(person["first name"]);正确 ,而 alert(person .first name)将出错。
注:除非必须采用变量访问属性,否则建议用点方法表示。