Object.prototype.toString.call constructor 小技巧: [].constructor 返回一个 fn,即:Array();new Array()返回[] {}.constructor 返回一个fn,即:Object();new Object()返回{} new obj.constructor会返回一个[]或者{} 注意: function直接返回;typeof function() {} == 'function' Symbol不是对象,直接返回;...
proto 是必填参数,就是新创建出来的对象的原型 (新对象的 __proto__属性指向的对象),值得注意的是当proto为null的时候创建的新对象完全是一个空对象,没有原型(如图),也就是没有继承Object.prototype上的方法。(如hasOwnProperty() toString() 等) propertiesObject是可选参数,作用就是给新对象添加新属性以及描述...
var args = Array.prototype.slice.call(arguments); var fn = function { var newArgs = args.concat(Array.prototype.slice.call(arguments)); return multi.apply(this, newArgs); } fn.toString = function { return args.reduce(function(a, b) { return a * b; } return fn; } function multiFn...