function2.實現繼承,方法二:prototype模式a()function
b()
//測試
var testb = new
b();
alert(testb.name)
//->json;
function函式定義的時候函式本身預設有乙個prototype的屬性,prototype又有constructor和__proto__屬性,a()function
b()
b.prototype = new
a();
b.prototype.constructor =b;
var testb=new
b();
alert(testb.name)
//->json
而我們如果用new 運算子來生成乙個例項的時候只有constructor屬性。
3.基於原型的擴充套件,原型鏈的證明
可以看到b指向a函式,且在a的原型上有getsom方法。
這裡是a這個函式(指標)是沒有方法getsom的。
但是由於他是繼承自a,所以會去a上找getsom(原型鏈尋找方向是:b -> a,一直向上尋找,如果找不到就報undefined)
更直觀的說明函式定義與字面量定義的異同:
因為字面量定義的時候,正在的是執行了 var c = new object();
new 與 字面量定義都是建立物件的兩種方式,所以兩個都是例項,且例項是沒有原型屬性的。
JavaScript實現繼承方式
student.prototype new person 得到乙個 person 例項,並且這個例項指向構造器的 prototype 屬性和呼叫了建構函式,因為呼叫的建構函式,而 student 只是乙個類,並沒有例項化,只為了繼承,呼叫建構函式建立乙個例項,引數的問題就不容易解決。例如 當 per...
JS實現繼承 JavaScript
定義乙個父類 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 複製 1.原型鏈繼承核心 將父類的例項作為子類的原型 function cat cat.prototype new animal cat.proto...
javascript實現繼承的幾種方式
前言 js作為物件導向的弱型別語言,繼承也是其非常強大的特性之一。那麼如何在js中實現繼承呢?讓我們拭目以待。既然要實現繼承,那麼首先我們得有乙個父類,如下 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 核心...