要建立person的新例項,必須使用new操作符。
以這種方式呼叫建構函式實際上會經歷以下4個步驟:
(1)建立乙個新物件;
(2)將建構函式的作用域賦給新物件(因此this就指向了這個新物件);
(3)執行建構函式中的**(為這個新物件新增屬性);
(4)返回新物件。
普通函式中:this->window
定時器中:this->window
建構函式中:this->當前例項化的物件
事件處理函式中:this->事件觸發物件
在js中一般理解就是誰呼叫這個this就指向誰
1.擴充套件原型物件實現繼承
function animal(name,color,say)
}var cat
= new animal(
'cat','white'
);// 如果給animal的prototype屬性上
新增個 cry 方法 ,那麼例項物件 cat將也會有 cry方法
animal.prototype.cry = function(
)),和call實現繼承
function person(name,age)
function man(name,age)
var man = new man(
'wozien',12)
;console.log(man.name)
;console.log(man.age)
;3.組合call+prototype,最常用的一種方式
function person(name)
person.prototype.showname = function(
)function man(name,age)
man.prototype = new person();
man.prototype.showage = function(
)var man = new man(
'wozien',12)
;man.showname(
); //wozien
man.showage(
); //12
三者都可以把乙個函式應用到其他物件上,注意不是自身物件.
bind是繫結,執行需要再次呼叫.
每個物件都會在其內部初始化乙個屬性,就是prototype(原型),
當我們訪問乙個物件的屬性時,
如果這個物件內部不存在這個屬性,那麼他就會去prototype裡找這個屬性,
這個prototype又會有自己的prototype,
於是就這樣一直找下去,
也就是我們平時所說的原型鏈的概念。
應用:原型鏈是實現繼承的主要方法
原型鏈繼承,借用建構函式繼承,原型+建構函式組合繼承
\1. 原型鏈繼承
\2. 借用建構函式繼承
\3. 組合繼承(原型+借用構造)
\4. 原型式繼承
\5. 寄生式繼承
\6. 寄生組合式繼承
前端 陣列合集
1.array.isarray es5 2.instanceof array 3.arr.constructor array 4.tostring.call object array 方法 描述 concat 連線兩個或更多的陣列,並返回結果。join 把陣列的所有元素放入乙個字串。元素通過指定的分...
母函式 合集
hdu 1521 指數型母函式 hdu 2065 指數型母函式 hdu 2152 母函式 hdu 1709 母函式 hdu 1028 母函式 hdu 1171 母函式 hdu 1085 母函式 hdu 1398 母函式 hdu 1521 指數型母函式 include include include ...
前端學習(十一)建構函式的繼承
建構函式間的繼承,如 function animal function pig color,name 想讓pig構造器繼承animal構造器function pig color,name var redpig new pig red zht alert redpig.atr 動物二 prototyp...