在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。
对象是某个特定引用类型的实例。
创建对象
在实际的开发环境中,我们大多数会用到的是Object类型的实例,虽然Object不具备多少功能,但对于存储和传输数据来说,这个是非常理想的选中。
创建Object的方式有两种,第一种
使用new操作符,第二种是
对象字面量表示法。
第一种 使用new操作符 :
var person =new Object();
var person =new Object();
person.name="lili";
person.age=20;
第二种 对象字面量表示法:
var person ={name:"lili",age:20}
另外,如果使用第二种,对象字面量语法时,如果留空其花括号,则可以定义只包含默认的属性和方法和对象。
var person={}; //和new Object()相同
person.name="lili";
person.age=20;
这个和第一、第二种方法是等价的。
实际使用中,比较多的开发人员比较喜欢使用第二种 对象字面量语法,因为这个代码量少,给人家有种封装数据的感觉。
function person(args){
var output = "";
if(typeof args.name == "string"){
output += "name:" +args.name +"\n";
}
if(typeof args.age == "number"){
output += "age:"+args .age+"\n";
}
console.log(output);
}
person ({name:"lili"});
person ({name:"lili",age:20});
以上的例子,说明了 person() 函数接收一个args的参数,这个参数可以传递一个带有多个属性的值。这种传递参数的模式最适合需要向函数传入大量的可选参数的情景,一般来说,命名参数虽然容易处理,但是在有多个可选参数的情况下就会显示不够灵活,最好的做法是对那些必须值使用命名参数,而使用对象字面量来封装多个可选参数。
访问对象属性
有两种方法,
第一个,点表示法;第二个,方括号表示法(属性要以字符串的形式放在方括号内)。
person.name //点表示法
person["name"] //方括号表示法
一般来说,上面两个访问办法没什么区别,一般情况是使用点表示法,但有两种比较特殊一点的情况。
1.当变量名可变化时,可以通过变量来访问属性;
2.当属性名包含会导致语法错误的字符,或者属性名使用关键字或者保留字。