function Person(name) {this.name = name}Person.prototype.getName = function(){return this.name;}var objectFactory = function(){var obj = new Object(); // 从 Object.prototype 上克隆一个空的对象var Constructor = [].shift.call(argments); // 取得外部传入的构造器,此例是 Personobj.__proto_type = Constructor.prorotype;var ret = Contructor.apply(obj,arguments);return typeof ret === 'object'?ret:obj;}var a = objectFactory( Person, 'sven' );console.log( a.name ); // 输出:sven
ECMAScript 6 带来了新的 Class 语法。这让 JavaScript 看起来像是一门基于类的语言, 但其背后仍是通过原型机制来创建对象。
