第一種:對(duì)象字面量的方式
var person = {
name: "小紅",
age: 22,
say:function(){
console.log(this.name+"今年"+this.age);
}
};
person.say();
第二種:創(chuàng)建Object實(shí)例:
var obj = new Object();
obj.name = "肥狗";
obj.age = 23;
obj.say = function(){
console.log("我是"+this.name+"今年"+obj.age);
}
obj.say();
第三種:數(shù)構(gòu)造函數(shù)
無參數(shù)構(gòu)造函數(shù)
function Person(){
this.name = "孫悟空";
this.age = 18;
this.gender = "男";
this.sayName = function(){
console.log(this.name);
}
}
var per = new Person();
var per2 = new Person();
console.log(per);
console.log(per2);
帶參數(shù)的構(gòu)造函數(shù)
function Person(name,age,hobby){
this.name = name;
this.age = age;
this.hobby = hobby;
this.sayName = function(){
console.log(this.name);
}
}
var people = new Person("小妹",22,"跑步");
var people2 = new Person("小紅",22,"跑步");
var people3 = new Person("小黃",22,"跑步");
console.log(people);
console.log(people2);
console.log(people3);
第四種:使用工廠方法創(chuàng)建對(duì)象
function creatPerson(name,age,tall){
//創(chuàng)建一個(gè)新的對(duì)象
var obj = new Object();
//向?qū)ο笾刑砑訉傩? obj.name = name;
obj.age = age;
obj.tall = tall;
obj.sayName = function(){
console.log(this.name);
}
//將新的對(duì)象返回
return obj;
}
var obj2 = creatPerson("孫悟空",18,"1.55米");
var obj3 = creatPerson("豬八戒",35,"1.57米");
var obj4 = creatPerson("白骨精",25,"1.50米");
console.log(obj2);
console.log(obj3);
console.log(obj4);
第五種:原型方式創(chuàng)建對(duì)象
function Person(name,age){}
Person.prototype.name = "SF";
Person.prototype.age = 25;
Person.prototype.say = function() {
alert(this.name+"是我的名字");
}
var my = new Person();
my.say();
第六種:混合方式 (構(gòu)造函數(shù)+原型)創(chuàng)建對(duì)象
function Person(name,age) {
this.name = name;
this.age = age;
}
Person.prototype.say = function() {
alert("我是"+this.name+",今年"+this.age);
}
var my = new Person("SF","25");
my.say();