拷贝见效果
先将下方代码拷贝下来,进行运行,根据下面的解释,完整看到后,我相信应该会有所解惑
function Person(name){
this.name=name;
}
var p = new Person("zhangsan");
console.log(p)
Person.prototype.age=23;//prototype是给函数使用的,用来扩展公共的属性
console.log(p)
p.__proto__.sex="男";//__proto__是给对象使用的,用来扩展公共的属性
console.log(p)
//因为函数的提前声明,所以,当我们给Person函数添加属性或者方法时,都可以通过第一个打印,在控制台中Person里的__proto__中看到后来添加的age与sex属性。也就是说,prototype与__proto__,出来调用者不同,但是想要达到的目的相同,都是给Person函数中添加公共的方法和属性
|