2017-08-26 144 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解釋器不顯示錯誤消息。這裏介紹的代碼與問題無關。謝謝大家。