对象的定义
和java中的万物皆对象一样,js中也几乎所有的事物都可以是对象
对象是包含变量的变量
变量可以包含单个的值,对象中的变量叫属性,采用键值对的形式编写
对象方法
是包含函数定义的对象属性
创建对象
1. 定义和创建单个对象,使用对象文字,
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
2. 通过new关键字
var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue";
js对象是易变的,他们通过引用来寻址,而非值
如果person是一个对象
var x = person;
x并非person的副本,x和person就是一个对象
对x的任何改变都会影响person,因为x和person是相同的对象,注意只有js对象是这样。
js中的对象属性
属性是指与js对象相关的值
对象是无序属性的集合
属性通常可以被修改,删除和添加,但是某些属性是只读的
访问js属性
语法有三种,分别是
1. person.age
2. person["age"]
3. person[age]
js中的for in循环遍历对象的属性
for (variable in object){
}
对象方法
方法是对象能够执行的动作
方法是存储为对象属性的函数
方法的创建
methodName : function() { 代码行 }
js对象构造器
创建一个对象类型的方法,就是使用对象构造器函数
通过new关键字调用构造器函数可以创建相同类型的对象
我们可以为对象直接增加新属性,但是无法直接为对象构造器添加新属性
为构造器添加新属性,您必须添加到构造器函数中,必须在构造器函数内部向一个对象添加方法
不能为对象构造器添加新方法。
prototype属性
prototype属性允许在对象构造器之外添加新属性和新方法
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
添加新方法
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};