原創 《js高階程式設計》三 2借用建構函式

2021-09-28 16:26:12 字數 1088 閱讀 9064

(有時候也叫做偽造物件或經典繼承)

解決原型中包含引用型別值所帶來問題

function

supertype()

function

subtype()

var instance1 =

newsubtype()

;instance1.colors.

push

("black");

alert

(instance1.colors)

;//"red,blue,green,black"

var instance2 =

newsubtype()

;alert

(instance2.colors)

;//"red,blue,green"

傳遞引數
function

supertype

(name)

function

subtype

(name)

var instance =

newsubtype

("nicholas");

alert

(instance.name)

;//"nicholas";

alert

(instance.age)

;//29

在 subtype 構造 函式內部呼叫 supertype 建構函式時,實際上是為 subtype 的例項設定了 name 屬性。為了確保 supertype 建構函式不會重寫子型別的屬性,可以在呼叫超型別建構函式後,再新增應該在子型別中 定義的屬性。

借用建構函式的問題

如果僅僅是借用建構函式,那麼也將無法避免建構函式模式存在的問題——方法都在建構函式中定 義,因此函式復用就無從談起了。而且,在超型別的原型中定義的方法,對子型別而言也是不可見的,結 果所有型別都只能使用建構函式模式。考慮到這些問題,借用建構函式的技術也是很少單獨使用的

一 js高階 2 建構函式 原型物件

3.建構函式用new建立例項的過程 1 建立乙個空物件 2 將this 指向例項,將函式的作用域賦給空物件 3 建立新物件 4 返回新物件 使用建構函式不僅 更加簡潔,更重要的是能夠識別物件的型別了 4.建構函式的例項的關係 1 例項的constructor 建構函式 console.log p1....

JS高階程式設計 第三章開始

三.基本概念 1.typeof 操作符 檢測資料型別 總共undefined boolean string number object function這6種型別 1.1 undefined 未宣告或未初始化 變數宣告之後預設取得了 undefined 值 1.2 null 空指標 定義的變數準備在...

JS高階程式設計2nd部分知識要點1

儲存浮點數值需要的記憶體空間是儲存整數值的兩倍,因此ecmascript會不失時機的將浮點數值轉換為整數值 浮點數值的最高精度是17位小數 parseint 字串轉換為數值,可傳基數 8,16 parsefloat 同上 區別 parsefloat始終會忽略前導的零,只解析十進位制的值,16進製制的...