1. 程式人生 > >JS 物件,原型的理解

JS 物件,原型的理解

函式是一種特殊的物件。原型可以理解為工廠生產的模子 物件分為普通物件函式物件,Object(),Function()是JS自帶的函式。 Function()是一個特例,可以理解為函式生產工廠(總工廠),負責生產函式(子工廠)。連Object()也是其生產的。 so,凡是通過 new Function() 建立的物件都是函式物件,其他的(如new f1())都是普通物件 函式的一個屬性就是原型物件 prototype(工廠的模子)。注:普通物件沒有prototype,但有__proto__屬性(指向建立它的函式物件的原型物件prototype (他按照著生產的模子) )。 原型物件其實就是普通物件(Function.prototype除外,它是函式物件,但它很特殊,他沒有prototype屬性(前面說道函式物件都有prototype屬性))
func.prototype就是func的一個例項物件。就是在func建立的時候,建立了一個它的例項物件並賦值給它的prototype (  function  f1(){};   ====>   var temp = new f1(); f1. prototype = temp;  一個工廠必須要有一個模子 )

func.prototype.__proto__ === Object.prototype

Object.__proto__ === Function.prototype

Function.__proto__ === Function.prototype === Object.__proto__ === GOD

Function.prototype.prototype  === Object.__proto__.prototype ===undefined

Object.__proto__.__proto__=== Object.prototype

Object. prototype.__proto__ === null ===Object.__proto__.__proto__.__proto__

Object.constructor===Function