javascript - 原型上的方法的调用
大家讲道理
大家讲道理 2017-04-11 11:27:38
[JavaScript讨论组]

如下代码,为什么xiaoming这个对象无法调用say这个方法?怎么写在里面就报错?

function Person(name) {
            this.name = name;
            this.prototype.say = function () {
                alert("大家好我是"+this.name);
           };
           
        }

       

        var xiaoming = new Person("robot");
            console.log(xiaoming.name);
            xiaoming.say();
            
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
伊谢尔伦
    function Person(name) {
        this.name = name;
        //prototype是函数对象的属性,this并没有
        this.__proto__.say = function () {
            alert("大家好我是"+this.name);
       };
       
    }
    var xiaoming = new Person("robot");
    console.log(xiaoming.name);
    xiaoming.say();
阿神

啊。。。。能调用啊。。。

讲道理,this并不是指向person 这个方法啊。。而是指向person构造函数生成的对象,所以你这个调用应该是xiaoming.prototype.say()

阿神

可以调用
哥们 你是想要弹出“xiaoming”?
因为你实例化 实例的name就是robot 所以》。。。。。

var xiaoming = new Person("xiaoming"); //这儿改成xiaoming  他就会say 了
 console.log(xiaoming.name);
 xiaoming.say();

![clipboard.png](/img/bVIcJd)

应该是你自己搞错了

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

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