JS 繼承 類式 與 原型式

2021-09-07 03:01:01 字數 2038 閱讀 6137

1.

/* -- 類式繼承 -- */

//先宣告乙個超類

function person(name)

//給這個超類的原型物件上新增方法 getname

person.prototype.getname = function()

//例項化這個超

var a = new person('darren1')

console.log(a.getname());//darren1

//再宣告類

function programmer(name, ***)

//這個子類的原型物件等於超類的例項

programmer.prototype = new person();

// 因為子類的原型物件等於超類的例項,所以prototype.constructor這個方法也等於超類建構函式,你可以自己測試一下,如果沒這一 步,console.log(programmer.prototype.constructor這個是person超類的引用,所以要從新賦值為自己本 身

console.log(programmer.prototype.constructor);

/*function person(name) */

programmer.prototype.constructor = programmer;

console.log(programmer.prototype.constructor);

/*function programmer(name, ***)

*///子類本身新增了get*** 方法

programmer.prototype.get*** = function()

//例項化這個子類

var _m = new programmer('darren2', 'male');

//自身的方法

console.log(_m.get***());//male

//繼承超類的方法

console.log(_m.getname());//darren2

2./* -- clone()方法封裝的原型式繼承 -- */

//clone()函式用來建立新的類person物件

var clone = function(obj) ;

//這句是原型式繼承最核心的地方,函式的原型物件為物件字面量

_f.prototype = obj;

return new _f;

}//先宣告乙個物件字面量

var person =

}//不需要定義乙個person的子類,只要執行一次轉殖即可

var programmer = clone(person);

//可以直接獲得person提供的預設值,也可以新增或者修改屬性和方法

alert(programmer.getname())

programmer.name = 'darren2'

alert(programmer.getname())

//宣告子類,執行一次轉殖即可

var someone = clone(programmer);

4、繼承的第四種方式:真正原型鏈方式,即子類通過prototype將所有在父類中通過prototype追加的屬性和方法都追加到child,從而實現了繼承

function person()

person.prototype.hello = "hello";

person.prototype.sayhello = function()

function child()

child.prototype = new person();//這行的作用是:將parent中將所有通過prototype追加的屬性和方法都追加到child,從而實現了繼承

child.prototype.world = "world";

child.prototype.sayworld = function()

var c = new child();

c.sayhello();

c.sayworld();

js繼承之 原型式繼承

借助原型可以基於已有的物件建立新物件,同時還不必因此常見自定義型別。為了達到這個目的,他給出了如下函式 function object o f.prototype o return new f 在object 函式內部,先建立乙個臨時性的建構函式,然後將傳入的物件作為這個建構函式的原型,最後返回了這...

原型式繼承

var person alert person.name li function create obj 建立空的建構函式 df.prototype obj 將引數物件的屬性方法賦給建構函式 return new df 返回該建構函式的例項物件 var man create person 試過直接將p...

JavaScript 繼承 原型式繼承

繼承 原型式繼承 原型式繼承並沒有使用嚴格意義上的建構函式,是通過借助原型基於已有的物件建立新物件,同時還不必建立自定義型別。使用原型式繼承的主要思路如例1所示 例1 function object o f.prototype o return new f 將例1進行分析可知 在object函式的內...