《javascript高级程序设计》读书笔记——引用类型之Object类型(细节整理)
2014-09-21 12:32
525 查看
创建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)将出错。
注:除非必须采用变量访问属性,否则建议用点方法表示。
①用 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)将出错。
注:除非必须采用变量访问属性,否则建议用点方法表示。
相关文章推荐
- 《javascript高级程序设计》读书笔记——引用类型之function类型(细节整理)
- 《JavaScript高级编程》读书笔记——引用类型一:Object和Array
- 《JavaScript高级程序设计》读书笔记之一:几个与原始类型等价的引用类型的常用方法和属性
- dhl:类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义必须添加对程序集“System.Data.Entity"引用
- as3(ActionScript3)关于对象(Object)的赋值与引用的一些整理
- 编译器错误消息: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。
- 判断一个OBject类型是值类型还是引用类型
- 无法解析类型 java.lang.Object。从必需的 .class 文件间接引用了它
- javascript高级程序设计(第3版) 读书笔记3—— 引用类型
- 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义必须添加对程序集“System.Data.Entity"引用
- 引用类型之Object类
- 如何为引用类型如何重写Object.Equals()方法?
- 格物致知--《Effective C#》读书笔记--验证接口引用指向装箱后的值类型时无需拆箱
- 编译器错误消息: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。
- more effective c++ 第一章读书笔记: 指针,引用,c++类型转换,多态数组,默认构造函数
- CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。必须添加对程序集 “System.Data.Entity, V
- 《JavaScript高级程序设计》读书笔记之一:几个与原始类型等价的引用类型的常用方法和属性
- C#中string和Object类型是引用传递
- 【整理】引用类型与ref传递实例精解
- 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义必须添加对程序集“System.Data.Entity"引用