用 new 呼叫時this 會指向空的物件,並且這個物件的原型指向myclass.prototype
再談原型鏈:
上圖對應的對應的**如下:
js用call實現繼承:
function
animal
(name)
}
function
cat(name)
var cat = new cat("black cat");
cat.showname();
animal.call(this) 的意思就是使用 animal物件代替this物件,那麼 cat中不就有animal的所有屬性和方法了嗎,cat物件就能夠直接呼叫animal的方法以及屬性了.
類似的多繼承(沒用原型鏈的方法)如下:
function
class10
()
} function
class11
()
} function
class2
()
原型 原型鏈 new做了什麼 繼承
比我們通過乙個建構函式new了乙個新物件,建構函式的原型prototype指向乙個物件,所有通過該建構函式new的新物件可以共享它所包含的屬性和方法。建構函式的原型prototype是乙個物件,那麼它也可以有自己的建構函式原型prototype,通過這樣,形成乙個原型鏈。原型鏈最終都可以上溯到obj...
原型及原型鏈
原型定義 原型是function物件的乙個屬性,它定義了建構函式製造出的物件的公共祖先。通過建構函式產生的物件,可以繼承該原型的屬性和方法。原型是物件屬性prototype對應的值。注 原型是乙個物件。我們可以直接在建構函式的prototype上直接新增屬性,也可以將建構函式的prototype指向...
new建構函式和原型鏈
new建構函式functionpeople name,age 這個函式是不是建構函式?他沒有被呼叫,用new呼叫後就是建構函式,不被new呼叫就不是建構函式 functionpeople name,age varobj people 小明 12 alert obj null alert obj.ag...