供js新手參考app
JavaScript 的一些基礎知識點:函數
o.constructor === o.__proto__.constructor
. 這是最基本的知識點,很少說。Fn === Fn.prototype.constructor
.Fn.constructor === Fn.__proto__.constructor
, 注意Fn.__proto__ !== Fn.prototype
, 千萬不要混淆了。var fn = new Fn()
,在 Firefox 下,不考慮參數傳遞,能夠用下面的代碼來表示 new 的過程: var o = {__proto__: Fn.prototype}; Fn.apply(o); fn = o;
var a = {}
能夠等價爲: var o = {__proto__: Object.prototype}; Object.apply(o); a = o;
所以全部對象都具備 constructor 成員。prototype
上面 5 點能夠歸結爲 2 點:構造函數的實例化過程和對象成員的原型鏈回溯機制。理解了這兩點,市面上 JavaScript 的各類各樣 OOP 機制,好比 Dean Edwards 的 Base.extend,MooTools 裏的 new Class, 以及《悟透 JavaScript》裏的甘露模型等等,就都能輕鬆輕鬆理解了。code