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

时间:2013-03-24 12:04:50

标签: javascript prototype

我收到以下错误

  

无法获取未定义或空引用的属性'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。那我为什么会收到这个错误?

1 个答案:

答案 0 :(得分: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 Like This

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();

此致