Javascript 未捕获类型错误:未定义不是函数

Javascript 未捕获类型错误:未定义不是函数,javascript,createjs,Javascript,Createjs,Button.js: (function () { function Button(label) { console.log(label); } }()); demo.html: <html> <head> <script src="../../lib/easeljs-0.7.1.min.js"></script> <script src="Button.js"></script

Button.js:

(function () {
    function Button(label) {
        console.log(label);
    }
}());
demo.html:

<html>

<head>
    <script src="../../lib/easeljs-0.7.1.min.js"></script>
    <script src="Button.js"></script>
    <script>
        window.onload = function() {
            var canvas, stage, button;
            canvas = document.getElementById("canvas");
            stage = new createjs.Stage(canvas);
            button = new createjs.Button("Anything");
            stage.addChild(button);
            stage.update();
        }
    </script>
</head>

<body>
    <canvas id="canvas" width=200 height=200>Canvas is not supported</canvas>
</body>

</html>

window.onload=函数(){
var画布、舞台、按钮;
canvas=document.getElementById(“canvas”);
stage=newcreatejs.stage(画布);
button=新建createjs.button(“任何内容”);
stage.addChild(按钮);
stage.update();
}
不支持画布
排队 button=新建createjs.button(“任何内容”); 错误:未捕获类型错误:未定义不是函数
为什么会出现此错误?

这是因为
按钮不在全局范围或
窗口中

你不需要在这里生活。删除它:

function Button(label) {
   console.log(label);     
}
如果您希望使用IEFE,请执行以下操作:

$(function () {
    window.Button = function (label) {
        console.log(label);
    }
});

这是因为
按钮
不在全局范围或
窗口

你不需要在这里生活。删除它:

function Button(label) {
   console.log(label);     
}
如果您希望使用IEFE,请执行以下操作:

$(function () {
    window.Button = function (label) {
        console.log(label);
    }
});

这是因为
按钮
不在全局范围或
窗口

你不需要在这里生活。删除它:

function Button(label) {
   console.log(label);     
}
如果您希望使用IEFE,请执行以下操作:

$(function () {
    window.Button = function (label) {
        console.log(label);
    }
});

这是因为
按钮
不在全局范围或
窗口

你不需要在这里生活。删除它:

function Button(label) {
   console.log(label);     
}
如果您希望使用IEFE,请执行以下操作:

$(function () {
    window.Button = function (label) {
        console.log(label);
    }
});

如果要使用
createjs.Button
访问
按钮
,则必须在
createjs
对象上创建
按钮

createjs.Button = function(label){
    console.log(label);
};
上述内容可以在任何范围内使用,包括全局和您的函数表达式,因为
createjs
在全局范围内。现在您可以执行以下操作:

button = new createjs.Button("Anything");

如果要使用
createjs.Button
访问
按钮
,则必须在
createjs
对象上创建
按钮

createjs.Button = function(label){
    console.log(label);
};
上述内容可以在任何范围内使用,包括全局和您的函数表达式,因为
createjs
在全局范围内。现在您可以执行以下操作:

button = new createjs.Button("Anything");

如果要使用
createjs.Button
访问
按钮
,则必须在
createjs
对象上创建
按钮

createjs.Button = function(label){
    console.log(label);
};
上述内容可以在任何范围内使用,包括全局和您的函数表达式,因为
createjs
在全局范围内。现在您可以执行以下操作:

button = new createjs.Button("Anything");

如果要使用
createjs.Button
访问
按钮
,则必须在
createjs
对象上创建
按钮

createjs.Button = function(label){
    console.log(label);
};
上述内容可以在任何范围内使用,包括全局和您的函数表达式,因为
createjs
在全局范围内。现在您可以执行以下操作:

button = new createjs.Button("Anything");

如何使其全局化?现在有两个错误未捕获引用错误:$未在mozilla中定义,它显示:TypeError:createjs.Button不是constructor@GauravArora,尝试删除该行中的
new
如何使其全局化?现在有两个错误未捕获引用错误:$未在mozilla中定义,它显示:TypeError:createjs.Button不是一个constructor@GauravArora,尝试删除该行中的
new
,如何使其全局化?现在有两个错误未捕获引用错误:$未在mozilla中定义,它显示:TypeError:createjs。按钮不是constructor@GauravArora,尝试删除该行中的
new
如何使其全局化?现在有两个错误未捕获引用错误:$未在mozilla中定义,它显示:TypeError:createjs。按钮不是constructor@GauravArora,尝试删除该行中的
new