function Test(){
this.name = "张三";
this.age = function(){
console.log("15岁");
}
}
Test.prototype.name = "李四"; //往原型里加了一个name
Test.prototype.age = function(){ //往原型里加了一个age
console.log("30岁");
}
var hero = new Test();
console.log(hero.name); //打印出的结果是“张三”
hero.age(); //打印出的结果是 “15岁”
delete hero.name; //删除了原型中的name
console.log(hero.name); //打印出了后面加入的那个name,结果是“李四”
hero.age();// 我要如何操作才能让这个的结果是后面加入的那个“30岁”呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
题主你都会
delete hero.name了,不会delete hero.age么= =||相信题主应该明白原型链的顺序,首先访问一个对象的属性,比如name,先看看这个对象是不是有name,没有,就往其原型上找,这时候看到了
李四,所以就李四了,但如果对象本身就有name,比如张三,那就不用那么麻烦去他原型链上找name了hero.age() 前面 接着删 delete hero.age;
也可以像删除name属性一样删除age属性啊,这样就会到原型上面去找了,也可以直接访问原型,虽然不太推荐.
hero.__proto__.age().也可以通过构造方法访问.Test.protptype.age()在你的代码的最后一句前面加上
delete,代码如下:和你的
delete hero.name是一样的原理。