JS基礎 建立物件的常見的兩種方法

2022-09-11 09:12:12 字數 1422 閱讀 3992

一、工廠方法

function

createobject(name,age)

return

obj;

}var per=createobject("小明",20);

使用工廠方法建立的物件,使用的建構函式都是object

所以建立的物件都是object這個型別,就導致我們無法區分出多種不同型別的物件

在函式體內使用new object

二、建構函式

function

person(name,age)

}//建立物件--->例項化物件同時對其屬性初始化

var per=new person("小明",18);

建立乙個建構函式,專門用來建立person物件的建構函式就是乙個普通的函式,

建立方式和普通函式沒有區別,不同的是建構函式習慣上首字母大寫

建構函式和普通函式的區別就是呼叫方式的不同

普通函式是直接呼叫,而建構函式需要使用new關鍵字來呼叫

使用同乙個建構函式建立的物件,我們稱為一類物件,也將乙個建構函式稱為乙個類。

我們將通過乙個建構函式建立的物件,稱為是該類的例項

建構函式的執行流程:

1.立刻建立乙個新的物件

2.將新建的物件設定為函式中this,在建構函式中可以使用this來引用新建的物件

3.逐行執行函式中的**

4.將新建的物件作為返回值返回。

三、工廠方法和建構函式的區別

共同點:都是函式,都可以建立物件,都可以傳入引數

工廠模式:函式名是小寫

有new,有返回值

new之後的物件是當前的物件

建構函式:

函式名是大寫(首字母)沒有new沒有返回值

this是當前的物件

四、使用建構函式的注意事項

建立乙個person建構函式

-在person建構函式中,為每乙個物件都新增了乙個sayname方法,

在建構函式內部建立的,也就是建構函式每執行一次就會建立乙個新的sayname方法也是所有例項的sayname都是唯一的。

這樣就導致了建構函式執行一次就會建立乙個新的方法,

執行10000次就會建立10000個新的方法,而10000個方法都是一摸一樣的

這是完全沒有必要,完全可以使所有的物件共享同乙個方法

將sayname方法在全域性作用域中定義

將函式定義在全域性作用域,

缺點:汙染了全域性作用域的命名空間而且定義在全域性作用域中也很不安全

以後我們建立建構函式時,可以將這些物件共有的屬性和方法,統一新增到建構函式的原型物件中,

這樣不用分別為每乙個物件新增,也不會影響到全域性作用域,就可以使每個物件都具有這些屬性和方法了。

python threading 兩種建立方式

作用 建立在thread模組之上,可以更容易地管理多個執行執行緒。通過使用執行緒,程式可以在同乙個程序空間併發地執行多個操作。threading模組建立在thread的底層特性基礎上,可以更容易地完成執行緒處理。1 呼叫函式 要使用thread,最簡單的方法就是用乙個目標函式例項化乙個thread物...

有效建立oracle dblink 的兩種方式

兩台不同的資料庫 伺服器,從一台資料庫伺服器 的乙個使用者讀取另一台資料庫伺服器下的某個使用者的資料,這個時候可以使用dblink。其實dblink和資料庫中的view差不多,建dblink的時候需要知道待讀取資料庫的ip位址,ssid以及資料庫使用者名稱和密碼。建立可以採用兩種方式 1 已經配置本...

有效建立oracle dblink 的兩種方式

兩台不同的資料庫伺服器,從一台資料庫伺服器的乙個使用者讀取另一台資料庫伺服器下的某個使用者的資料,這個時候可以使用dblink。其實dblink和資料庫中的view差不多,建dblink的時候需要知道待讀取資料庫的ip位址,ssid以及資料庫使用者名稱和密碼。建立可以採用兩種方式 1 已經配置本地服...