0
var Player1 = new character;

Player1.Logic();またはで関数を呼び出そうとするとLogic();、エラーが発生します。

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

関数を別の方法で宣言するか、別の方法で呼び出す必要がありますか? これを除いて、他のすべては正常に機能しているようです。私がこれまでに経験した唯一の幸運は、イベント ハンドラーを使用して関数を宣言したことです。

4

2 に答える 2

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

サイド ノード: 通常、大文字のメソッドはクラスに使用され、小文字のメソッドは通常、通常の関数とクラス メソッドに使用されます。

于 2013-08-22T17:24:54.590 に答える
0

character() 関数の外で Logic() 関数を宣言しています...

これを試して:

(function (window) {

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

    window.character = character;
}(window));
var Player = new character();
character.Logic();
于 2013-08-22T17:30:27.397 に答える