2017-08-26 102 views
0

够简单的代码,如:的JavaScript函数原型没有定义

function Person(first, last) { 
    this.firstName = first; 
    this.lastName = last; 
} 

Person.prototype.getFullName = function() { 
    return this.firstName + " " + this.lastName; 
}; 

如果我有这样的一个文件,它被加载到一个网页(任何浏览器),如果我在控制台输入:

> p = new Person("Bob", "Smith"); 
> p.getFullName(); 

我得到: 遗漏的类型错误:p.getFullName不是一个函数

如果我复制完全相同的线路上面直接粘贴到控制台,它的工作原理。它也适用于Node.js中的第一次尝试。为什么getFullName的原始定义在从文件加载到浏览器中时没有显示为函数? (我试过Chrome和Firefox的两个版本。)

+0

你有没有尝试在另一个函数中包装你的代码? – Blacksun

+0

对我来说,它也可以从命令行运行。你的控制台窗口中选择了正确的框架吗? – Ivar

回答

0

确保您已将的script.js(例如)文件导入的.html以正确的方式:

<body> 
<script src="script.js"></script> 
</body> 

顺便说一句,这些代码在浏览器中也适用我,并使用node.js。

0

嗯,这很尴尬。我在我的文件中发现了一个错误,导致js解释器不显示错误消息。这里介绍的代码与问题无关。谢谢大家。