Mar*_*tin 3 javascript coffeescript
这是非常基本的.我尝试实例化嵌入的外部.js文件中定义的类..js的代码就是这个.
(function() {
var MyClass;
MyClass = (function() {
function MyClass() {}
MyClass.prototype.name = function(name) {};
return MyClass;
})();
}).call(this);
Run Code Online (Sandbox Code Playgroud)
HTML就是这样
<!DOCTYPE html>
<html>
<head>
<title>Sample Page</title>
<script src="file.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我尝试在控制台上实例化类,但我看到ReferenceError: MyClass is not defined:
var myVar
myVar = new MyClass
> ReferenceError: MyClass is not defined
Run Code Online (Sandbox Code Playgroud)
如果我尝试MyClass直接从控制台调用我得到相同的错误
> ReferenceError: MyClass is not defined
Run Code Online (Sandbox Code Playgroud)
我确定我在这里遗漏了一些可怕的东西,但我能弄明白什么.
更新:要创建编码的javascript我正在使用CoffeScript,代码就是这样.
class MyClass
acc: (name) ->
Run Code Online (Sandbox Code Playgroud)
建议的答案代码在转换回CoffeScript时使用http://js2coffee.org呈现为不同的代码,但仍然不起作用.想知道如果有一个CoffeScript提示将MyClass从本地范围弹出到外部范围.
我的类在闭包中定义.而你想要做的是通过将其设置为窗口对象将其"弹出"到外部范围:
(function() {
var myClass = ...
window.myClass = myClass;
}).call( this );
Run Code Online (Sandbox Code Playgroud)
更新:似乎你想在CoffeeScript中使用它.干得好:
(->
myClass = (->
myClass = ->
myClass::name = (name) ->
myClass
)()
window.myClass = myClass
).call this
Run Code Online (Sandbox Code Playgroud)