需要使用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的实例对象, 在不手动赋值之前, 它的属性和方法是跟参数对象保持一致的;

评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

怎样手写实现 new 命令的功能