function Person()
{
this.name='尹杰';
this.sex='男';
}
Person.prototype.name='黄石';
var person1=new Person;
alert(person1.prototype.name);如何获取黄石的信息
{
this.name='尹杰';
this.sex='男';
}
Person.prototype.name='黄石';
var person1=new Person;
alert(person1.prototype.name);如何获取黄石的信息
{
this.name='尹杰';
this.sex='男';
}
var person1=new Person();Person.prototype.name3='黄石';alert(person1.name3);能取到,也就是说在new的时候,黄石已经被替换了,prototype是原形的意思,可以理解为默认值,但你在建立函数时有 this.name='尹杰',也就是把默认值为复盖了。我说不一定对,只是我自己这样理解的
而当类主体定义了同样名称的方法或属性时,prototype上的方法或属性会被隐藏,而不是被覆盖。看以下代码便知:
function Person() {
this.name = '尹杰';
this.sex = '男';
}
Person.prototype.name = '黄石';
var p = new Person;
alert(p.name);
delete p.name;
alert(p.name);
// 结果
// '尹杰'
// '黄石'
作者应该深入去理解prototype的机制,就明白为什么访问不到'黄石'了
{
this.name='尹杰';
this.sex='男';
}var person1=new Person;
Person.prototype.name1='黄石1';
alert(person1.name1+'--name:'+person1.name);
结果:黄石1--name:尹杰
{
this.name='尹杰';
this.sex='男';
}
Person.prototype.name='黄石';
var person1=new Person;
alert(Person.prototype.name);
// this.name 这句的优先级比prototype里面的name属性要高
// 非得输出“黄石”的话就这样
alert(person1.constructor.prototype.name);