1

我收到以下错误

无法获取未定义或空引用的属性“showMsg”

在下面代码的最后一行:

    Function.prototype.showMsg = function () {
        alert("This is a sample message.");
    };

    function Person() {
        this.name = "Mahesh";
    };

    var personObj = new Person();
    personObj.prototype.showMsg();

实际上我应该能够showMsg()Person实例访问,因为我已将它添加到Function.prototype. 那为什么我会收到这个错误?

4

1 回答 1

1

好吧,你都理解错了

Function.prototype.showMsg = function () {
    alert("This is a sample message.");
};

function Person() {
    this.name = "Mahesh";
};

var personObj = new Person();
personObj.prototype.showMsg();

首先对函数类进行原型设计,然后创建一个名为 Person 的自定义类,然后创建 Person 的实例。然后你调用的是非常蓝图,它是 showMsg,它是 2 个错误 1 ​​showMsg 没有绑定到 Person 中,然后调用它,如果它有界,你可以像这样直接调用它

personObj.showMsg()

从我的角度来看,如果我让你这样写的话,我愿意让这个脚本工作 ->

function Person() {
 this.name = "Mahesh";
};

Person.prototype.showMsg = function () {
  alert("This is a sample message.");
};

var personObj = new Person();
personObj.showMsg();

我的脚本将 showMsg 直接绑定到 Person 类,如果你需要它通过 Person 对象和 Function Class To 然后你必须像这样从 Function Class 继承

Function.prototype.showMsg=function () {
   alert("This is a sample message.");
    };

function Person() {
   this.name = "Mahesh";
    };


Person.prototype = Function;
Person.prototype.constructor = Person;

var personObj = new Person();
personObj.showMsg();

问候

于 2013-03-24T12:11:56.777 回答