javascript原型和原型鏈,建構函式和例項

2021-09-14 08:45:38 字數 1484 閱讀 6114

原型(建構函式)就是工廠,原型的例項就是工廠按照圖紙生成的工具(比如汽車),

原型鏈(隱式的)就是生成的工具所具有的功能,而功能是工具的屬性,

生成什麼樣的工具是由工廠(建構函式)決定的,圖紙是有工廠和客戶共同決定的

var ca***ctory =function(options); //

this.stop = function(){};

//......

}

//下面是原型的例項,注意,不一定要new,ca***ctory()本身就是乙個例項,

//可以呼叫對應的屬性和方法如run()和stop()等,

//這裡的new是乙個繼承,相當於另外複製了乙份,是為了重複利用該工廠,而不是只生產一輛車,專門為該車提供服務,

//關於繼承,可以參考:js繼承

var car = new ca***ctory();//例項

car //

//在chrome下,輸出乙個物件,其中 __proto__即是原型鏈,是指該物件隱式的含有的一些功能,

//該功能由原型建構函式決定,而所有的原型的祖宗原型是object,所以所有的物件都有object的一些預設的屬性和方法,如:tostring等

以下**加深理解

2..constructor=== number // 2的構造者是number

number.constructor ===function//number 的構造者是function

function.constructor===function //function的構造者是 function

math.constructor=== object// math的構造者是object

({}).constructor===object// {}的構造者是object

object.constructor===function //object 的構造者是 function

2..__proto__=== number.prototype // 2的構造者是number

number.__proto__===function.prototype //number 的構造者是function

function.__proto__===function.prototype //function的構造者是 function

math.__proto__=== object.prototype // math的構造者是object

({}).__proto__===object.prototype // {}的構造者是object

object.__proto__===function.prototype //object 的構造者是 function

JavaScript中原型和原型鏈

原型 prototype 為其他物件提供共享屬性的物件。每個函式都有乙個原型 prototype 屬性,這個屬性是乙個指標,指向乙個物件,這個物件包含特定例項共享的一些屬性和方法。以例服人 這個例子說明了原型物件是共享的,並且是乙個指標,並且物件的例項中也有指向prototype指向物件的指標。fu...

深入javascript之原型和原型鏈

所有引用型別 函式,陣列,物件 都擁有 proto 屬性 隱式原型 所有函式擁有prototype屬性 顯式原型 僅限函式 原型物件 擁有prototype屬性的物件,在定義數時就被建立 先複習下建構函式 建立建構函式 function word words word.prototype 建立例項 ...

深入JavaScript之原型和原型鏈

所有引用型別 函式 陣列 物件 都擁有 proto 屬性 隱式原型 所有函式擁有prototype屬性 顯式原型 僅限函式 原型物件 擁有prototype屬性的物件,在定義函式時就被建立 建立建構函式 function word words word.prototype 建立例項 var w ne...