首頁 >web前端 >js教程 >javascript寄生建構函數模式與穩健建構函數模式實例詳解

javascript寄生建構函數模式與穩健建構函數模式實例詳解

伊谢尔伦
伊谢尔伦原創
2017-07-27 10:39:031723瀏覽

寄生建構函數模式

通常,在前述的幾種模式都不適用的情況下,可以使用寄生(parasitic)建構函數模式。這種模式的基本想法是創建一個函數,該函數的作用只是封裝創建物件的程式碼,然後再返回新創建的物件;但從表面上看,這個函數又很像是典型的建構子。下面是一個例子。

function Person(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 friend = new Person("Nicholas", 29, "Software Engineer");
friend.sayName(); //"Nicholas"

在這個例子中,Person 函數創建了一個新對象,並以相應的屬性和方法初始化該對象,然後又返回了這個對象。除了使用new 運算元並把使用的包裝函數叫做建構函式之外,這個模式跟工廠模式其實是一模一樣的。建構函數在不傳回值的情況下,預設會傳回新物件實例。

穩健建構函數模式

所謂穩妥對象,指的是沒有公共屬性,其方法也不引用this 的對象。穩妥物件最適合在一些安全的環境中(這些環境中會禁止使用this 和new),或是在防止資料被其他應用程式(如Mashup程式)改動時使用。穩妥建構函數遵循與寄生建構函數類似的模式,但有兩點不同:一是新建立物件的實例方法不引用this;二是不使用new 操作符呼叫建構子。依照穩妥建構函數的要求,可以將前面的Person 建構子重寫如下。

function Person(name, age, job){
 //创建要返回的对象
 var o = new Object();
 //可以在这里定义私有变量和函数
 //添加方法
 o.sayName = function(){
 alert(name);
 };
//返回对象
return o;
}

以上是javascript寄生建構函數模式與穩健建構函數模式實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn