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>
为该行 button = new createjs.Button(“Anything”); 错误:未捕获TypeError:undefined不是函数 为什么我收到此错误?
答案 0 :(得分:2)
这是因为Button
不在全球范围内或window
。
这里你不需要IEFE。删除它:
function Button(label) {
console.log(label);
}
如果您想使用IEFE,请执行以下操作:
$(function () {
window.Button = function (label) {
console.log(label);
}
});
答案 1 :(得分:1)
如果您想使用Button
访问createjs.Button
,则必须在Button
对象上创建createjs
:
createjs.Button = function(label){
console.log(label);
};
上述内容适用于任何范围,包括全局和函数表达式,因为createjs
位于全局范围内。现在你可以做到:
button = new createjs.Button("Anything");