原型上的方法的调用

如下代码,为什么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();
            
阅读 2.5k
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)

应该是你自己搞错了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题