Batman.js vs Knockout.js(blog.erlware.org)
blog.erlware.org
Batman.js vs Knockout.js
http://blog.erlware.org/2011/08/28/batman-js-vs-knockout-js/
2 comments
sorry for being a n00b but what's the goal of the "class @User" syntax?
I have a cursory knowledge of CS and I'd assume that gets desugared to something like
this.User = ...
but what use does it have?By default, CS compiles with a closure per file to prevent local variables from leaking to the global scope. So the purpose is to ensure the class is exported. If you put the following in a user.coffee file:
class User
it would compile to: (function() {
User = (function() {
function User() {}
return User;
})();
}).call(this);
while class @User
would compile to: (function() {
this.User = (function() {
function User() {}
return User;
})();
}).call(this);
ensuring that User is available from any file (since the top-level this === window in the browser).I have the same question!
In all these frameworks that add those features, they forgot to copy two that I personally love to death. data bind attributes can contain arbitrary javascript, and creating new types of data bindings is insanely trivial.