/** * 共享原型 * 原理: js中对象按引用传递 */ //facade 一个输出函数 function log() { console.log([].join.call(arguments, ',')); } //第一个类 function One(name) { this.name = name || "Adam"; } //第一个类原型上添加一个方法 One.prototype.say = function() { return this.name; } //实现共享原型 function share_prototype(one, two) { two.prototype = one.prototype; } //第二个类 function Two(name) { this.name = name; } //执行共享原型,注意:这儿传入的是类名,只有类名才可以直接调用prototype share_prototype(One, Two); var o = new One("abc "); log(o.name); log(o.say()); var t = new Two("suxiaolin"); log(t.name); log(t.say());