日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

面向对象JS编程(一)——创建对象

發布時間:2023/12/13 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象JS编程(一)——创建对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.普通模式

var person = new Object();

person.name = "Laughing";
person.age = 28;
person.job = "Software Engineer";

peron.sayName = function(){
alert(this.name);
};

person.sayName();

缺點:創建多個對象時,會產生大量的重復代碼。

2.工廠模式

function createPerson(name, age, job){
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function(){
alert(this.name);
};
return o;
}

var person1 = new Person("Laughing", 28, "Software Enginner");
var person2 = new Person("Greg", 27, "Doctor");

缺點:無法識別對象的類型。

3.構造函數模式

function Person(name, age, job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(this.name);
};
}

var person1 = new Person("Laughing", 28, "Software Enginner");
var person2 = new Person("Greg", 27, "Doctor");

優點:可以使用instanceof判斷對象類型,即alert(person1 instanceof Person); //true

缺點:每個方法都需要在每個實例上重新創建一遍。

4.原型模式

function Person(){
}

Person.prototype.name = "Laughing";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function(){
alert(this.name);
};

var person1 = new Person();
var person2 = new Person();

alert(person1.sayName == person2.sayName); //true

缺點:對于包含引用類型值的屬性,共享非常不合適。如:

function Person(){
}

//更簡單的原型模式
Person.prototype = {
constructor: Person, //重新指定constructor
name : "Laughing",
age : 29,
job : "Software Engineer",
friends : ["Shelby", "Court"],
sayName : function(){
alert(this.name);
}
};

var person1 = new Person();
var person2 = new Person();

person1.friends.push("Van");

alert(person1.friends); //"Shelby, Court, Van"
alert(person2.friends); //"Shelby, Court, Van" 期望是 "Shelby, Court"

5.原型構造模式

function Person(name, age, job){
this.name = name;
this.age = age;
this.job = job;
this.friends = ["Shelby", "Court"];
}

Person.prototype = {
constructor : Person,
sayName : function(){
alert(this.name);
}
};

var person1 = new Person("Laughing", 28, "Software Engineer");
var person2 = new Person("Greg", 29, "Doctor");

person1.friends.push("Van");

alert(person1.friends); //"Shelby, Count, Van"
alert(person2.friends); //"Shelby, Count"






轉載于:https://www.cnblogs.com/shaobo/archive/2012/01/06/2315063.html

總結

以上是生活随笔為你收集整理的面向对象JS编程(一)——创建对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。