JavaScript对象:
JS对象是一种特殊的数据,拥有属性和方法 以键值对的形式储存
定义对象如下:
var person = {
firstName: "Bill",
lastName : "Gates",
id : 678,
fullName : function() {
return this.firstName + " " + this.lastName;
},
get getName(){
return this.firstName + " " + this.lastName;
}
set setName(name){
var names = name.split(" ");
this.firstName = names[0];
this.lastName = names[1]
}
};
创建对象:
var x = new person()
对象属性:
属性通常可以被修改、添加和删除,但是某些属性是只读的。
修改和增加属性:
person.firstName
person["firstName"]
两种方式都可以访问
删除属性:
使用delete关键字
delete person.firstName;
对象方法:
方法是存储为对象属性的函数。
调用对象方法:
就如上person对象中fullName方法
fullName为属性返回的是函数的定义
person.fullName返回 function(){return this.firstName + " " + this.lastName;}
而想要执行这个函数需要在属性后加括号()如下:
person.fullName()
访问器:
Getter 和 Setter 允许您定义对象访问器(被计算的属性)。ES5中引入的。
通过get和set关键字定义的
跟函数访问的区别在于使用访问器是以访问属性的方式访问的
如:person.getName
而方法则需要加括号
如:person.fullName()
构造器:
function Person(first, last, age) {
this.firstName = first;
this.lastName = last;
this.age = age;
}
如上就是一个对象构造器函数
在通过new关键字来创建对象。
me = new Person("abc","xxx",21);
可以给对象添加属性或者方法
me.nationality = "Chinese"
myFather.name = function () {
return this.firstName + " " + this.lastName;
};
对象原型:
原型继承所有JS对象都从原型继承属性和方法
日期对象继承自 Date.prototype。数组对象继承自 Array.prototype。Person 对象继承自 Person.prototype。
Object.prototype 位于原型继承链的顶端:
日期对象、数组对象和 Person 对象都继承自 Object.prototype
prototype属性:
因为正常情况下无法给已有的构造器添加新的属性和方法。
不过可以使用prototype属性添加新属性或者方法
Person.prototype.nationality = "Chinese"
请只修改您自己的原型。绝不要修改标准 JavaScript 对象的原型。