JS原型
      02 May 2014
    
    为了便于理解,JS的对象可以划分为函数对象和普通对象,每个对象都有一个__proto__属性,用于保存各对象原型的神秘链接,每个函数对象都有一个prototype属性,该属性存储的就是原型对象。
下面看一个函数对象的原型链构:
1
2
3
function Person () {
    this.me="rokety";
}

实例化:
1
var p = new Person();

再来看看闭包,跟函数对象差不多:
var f = function(){this.me="rokety";};
JS 中 new 运算符工作原理,JavaScript原型继承工作原理;
function New (f) {
    var n = { '__proto__': f.prototype  }; /*第一步*/
    return function () {
        f.apply(n, arguments);            /*第二步*/
        return n;                         /*第三步*/
    };
}JS 引擎如何查找属性:
function getProperty(obj, prop) {
    if (obj.hasOwnProperty(prop))
        return obj[prop];
    else if (obj.__proto__ !== null)
        return getProperty(obj.__proto__, prop);
    else
        return undefined;
}