我理解的原型

2021-07-29 00:06:28 字數 897 閱讀 6092

js中幾大疑難雜症  原型  通常提到原型都會提到繼承  我覺得原型就是為了繼承啊 比如你想給你**裡的乙個物件擴充套件乙個通用的方法 就可以寫成 

array.prototype.func=function()

這樣就給陣列物件新增了乙個func方法   這樣   

var arr=[1,2,3];

arr.func();就跟陣列自帶的很多方法是一樣的 這就是利用prototype擴充套件內建物件的公用功能

再比如說 宣告乙個陣列 var arr=[1,2,3];   在控制台可以看見除了陣列本身的三個元素之外還有乙個_proto_

在舉個例子  function student(name,age)

var anna=new student("anna",11);

student.prototype.func=function()

anna.func();   可以彈出1;  這說明啥  

建構函式student 所有建構函式都有它自己prototype  

在建立乙個物件的時候 建立anna的時候  分別做了三件事情   

1:建立乙個空物件

2:按照建構函式的定義為魔板初始化物件中的屬性和方法

3:設定它的_proto屬性 指向建構函式的原型....

有些面試可能會問到_proto_和prototype是啥關係  其實我理解的就是上邊說的那樣的   

比如js提供了內建物件array  然後你再自己新建陣列物件的時候 可以這樣寫  var arr=[1,2,3] 這樣也可以 但是你也可以寫成這樣的呀  var  arr =new  array(1,2,3);  這不就是建構函式的寫法了嗎  然後啦  上面的這個arr的_proto屬性是指向他的建構函式的原型  也就是 array.prototype這樣的   大概就是這個樣子吧

我理解的原型設計模式

q 這個模式是幹什麼用的那?a 提高速度 已經有現成的例項,直接拷貝乙個出來是要比構造乙個速度要快?此處缺乙個測試程式。該模式的範例 include include include class wheel wheel name loadcapacity 0 void show wheel clone...

我理解的原型模式

原型模式也是一種建立模式,它主要通過複製乙個物件來建立乙個新的物件。原型類需要滿足兩個條件 如下 public class prototype implements cloneable override protected prototype clone catch clonenotsupporte...

我對js原型鏈的理解

引言 從關鍵字new 說起 我來試著模擬一下new的操作過程。模擬new關鍵字的行為 function methodnew func func 新物件的建構函式 實際上等價於object obj.constructor func 更改obj的constructor屬性 obj.proto func....