怎样在拿不到构造函数的情况下生成该构造函数的实例对象
需要使用Object.create()方法.
function Person(name){ this.name = name; } var lilei = new Person("Lilei"); lilei.name; // "Lilei" var hanmeimei = Object.create(lilei); hanmeimei.name; // "Lilei"; lilei.name = "李雷"; hanmeimei.name; // "李雷"; hanmeimei.name = "韩梅梅"; lilei.name; // "李雷"; hanmeimei.name; // "韩梅梅" lilei instanceof Person; // true hanmeimei instanceof Person; // true
上面的代码说明了一个情况, 就是通过Object.create()生成的实例对象尽管是Person的实例对象, 在不手动赋值之前, 它的属性和方法是跟参数对象保持一致的;