供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