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 回答