javascript - 怎样能执行后面加入的这一段呢?
迷茫
迷茫 2017-04-11 13:09:29
[JavaScript讨论组]
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岁”呢?
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(5)
怪我咯
 function Test(){
        this.name = "张三";
        this.age = function(){
            console.log("15岁");
            **delete this.age**
        }

    }

    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岁”呢?
迷茫

题主你都会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.age; //新加的代码
hero.age();// 我要如何操作才能让这个的结果是后面加入的那个“30岁”呢?

和你的delete hero.name是一样的原理。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号