组织函数形式
1.运用new操作符后跟Object组织函数
var person = new Object();
person.name = "kitty";
person.age = 25;
person.__proto__(隐式原型)指向Object.prototype.
2.由组织函数组织出来
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.showColor = function() {
alert(this.color);
};
}
var oCar1 = new Car("red",4,23);
var oCar2 = new Car("blue",3,25);
person.__proto__指向Car.prototype.
3.由函数Object.create组织
var person1 = {
name: 'cyl',
sex: 'male'
};
var person2 = Object.create(person1);
运用“对象字面量”示意法
JavaScript还支撑对象和数组字面量,许可运用一种简约而可读的记法来建立数组和对象。
var person = {
name : "kitty",
age:25
};
工场形式
function createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.mpg = iMpg;
oTempCar.showColor = function() {
alert(this.color);
};
return oTempCar;
}
var oCar1 = createCar("red",4,23);
var oCar2 = createCar("blue",3,25);
oCar1.showColor(); //输出 "red"
oCar2.showColor(); //输出 "blue"
前面的例子中,每次挪用函数 createCar(),都要建立新函数 showColor(),意味着每一个对象都有本身的 showColor() 版本。而事实上,每一个对象都同享同一个函数。javascript中没有什么static和成员变量之分,假如想在对象之间同享数据或要领,只能借助原型对象,将同享的变量和要领都放在原型对象中。
原型体式格局
function Car() {}
Car.prototype.color = "blue";
Car.prototype.doors = 4;
Car.prototype.mpg = 25;
Car.prototype.drivers = new Array("Mike","John");
Car.prototype.showColor = function() {
alert(this.color);
}
};
var oCar1 = new Car();
var oCar2 = new Car();
oCar1.drivers.push("Bill");
alert(oCar1.drivers); //输出 "Mike,John,Bill"
alert(oCar2.drivers); //输出 "Mike,John,Bill"
夹杂的组织函数/原型体式格局(相对圆满的处理体式格局)
团结运用组织函数和原型体式格局,便可像用其他程序设计语言一样建立对象。这类观点异常简朴,即用组织函数定义对象的一切非函数属性,用原型体式格局定义对象的函数属性(要领)。结果是,一切函数都只建立一次,而每一个对象都具有本身的对象属性实例。
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
}
Car.prototype.showColor = function() {
alert(this.color);
};
var oCar1 = new Car("red",4,23);
var oCar2 = new Car("blue",3,25);
oCar1.drivers.push("Bill");
alert(oCar1.drivers); //输出 "Mike,John,Bill"
alert(oCar2.drivers); //输出 "Mike,John"
JS的组织函数都有一个prototype属性,指向它的原型对象(实在就是个一般的JS对象)。经由过程同一个组织函数建立出来的对象,同享同一个原型对象。原型对象初始化的时刻是空的,我们能够在里面自定义任何属性和要领,这些要领和属性都将被该组织函数所建立的对象继续。假如原型发生了变化,那末一切实例都邑随着转变。