NewO = function (pro, _o) {
return (_o = function () {}).prototype = pro, _o;
}
看不太明白

解决方案 »

  1.   

    (_o=function(){})得到一个函数对象function(){},变量_o指向该对象。(_o=function(){}).property=pro表示为o指向的函数对象(function(){})的原型添加一个属性,该属性的设置来自于pro。(_o=function(){}).property=pro,_o为逗号表达式,最终结果为_o。最终返回的结果就是变量_o指向的对象即函数对象function(){},该对象的原型为pro。可以分解如下:NewO=function(pro,_o){
        _o=function(){};
        _o.property=pro;
        return _o;
    };参数pro肯定是一个对象,举个例子NewO=function(pro,_o){return (_o=function(){}).property=pro,_o;}
    var tmp;
    var test=NewO({a:1},tmp);
    /**
     *执行过后,tmp将变成一个函数对象,内容为:
     *test=function(){};
     *test.property.a=1;
     */
      

  2.   

    不好意思,更正一下,property应该改为prototype,称为原型,错写成property了……