(有時候也叫做偽造物件或經典繼承)
解決原型中包含引用型別值所帶來問題
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進製制的...