2013-08-22 38 views
0
var Player1 = new character; 

當我嘗試調用函數與Player1.Logic();Logic();我得到一個錯誤:遺漏的類型錯誤:對象#<character>沒有方法「邏輯」

Uncaught TypeError: Object #<character> has no method 'Logic' 

這裏是我character.js類文件:

(function(window){ 

function character(){ 
} 

function Logic(){ 
    console.log("new character loaded!"); 
} 

window.character = character; 
}(window)); 

我應該以不同的方式聲明函數還是以不同的方式調用它? 除此之外,其他一切看起來都很好。迄今爲止唯一的運氣是用事件處理程序聲明函數。

+2

哪裏HTML5?我看到JavaScript。 – epascarello

+1

@epascarello就在那裏**在標籤**你沒有看到它嗎? :-P – Neal

+0

缺少一些'Logic.prototype.character'的東西。 – Mindbreaker

回答

3

那是因爲Logic函數有沒有什麼character函數有關。

Logic函數在該IIFE的本地範圍內。


這裏是你可以信息:

var Character = (function(){ 

    function Character(){} 

    Character.prototype.logic = function(){ 
     console.log("new character loaded!"); 
    } 

    return Character 

})(); 

而且你可以使用它像這樣:

var myCharacter = new Character(); 
myCharacter.logic(); 

側節點:資本化的方法通常用於類和小寫方法通常用於常規函數和類方法。

+0

* IIFE(立即調用的函數表達式) –

+0

@AndréDion所以我有點誦讀困難:-P你***可以***編輯你知道..... – Neal

+0

沒有不敬的意圖,只是澄清任何潛在的難倒讀者。老實說,這是我第一次遇到與維基有關的任何東西 - 我有點失落了。 –

0

你宣佈你的邏輯()函數,你的性格()函數外...

試試這個:

(function (window) { 

    function character() { 
     this.Logic=function() { 
      console.log("new character loaded!"); 
     } 
    } 

    window.character = character; 
}(window)); 
var Player = new character(); 
character.Logic(); 
相關問題