学习时间3h30min
对象、属性和方法。
对于如下对象:
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
- 冒号前时属性名,冒号后是属性值
- 方法是作为属性来存储的函数。
访问对象属性
两种方法:
1.objectName.propertyName
2.objectName["propertyName"]
访问对象方法
1.name = person.fullName();
此时执行对象方法
2.name = person.fullName;
此时返回函数定义(函数的定义就是属性值,方法实际上是以属性值的形式存储的函数定义。)
括号表示法
person.age
person.name.first
等价
person['age']
person['name']['first']
- 括号表示法一个有用的地方是它不仅可以动态的去设置对象成员的值,还可以动态的去设置成员的名字。
例子:
var myDataName = 'height'
var myDataValue = '1.75m'
person[myDataName] = myDataValue
person;// {height: "1.75m"}
- 这是使用点表示法无法做到的,点表示法只能接受字面量的成员的名字,不接受变量作为名字。
关于this
开一个小头:。在字面量的对象里this看起来不是很有用,但是当你动态创建一个对象(例如使用构造器)时它是非常有用的,之后你会更清楚它的用途。
关于构造器
开一个小头:内建的对象或API不会总是自动地创建对象的实例,举例来说,这个 Notifications API——允许浏览器发起系统通知,需要你为每一个你想发起的通知都使用构造器进行实例化:
var myNotification = new Notification('Hello!');
后面会学到构造器