我正在尝试使用 CoffeeScript 中的自执行匿名函数来实现命名空间:
http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/
我还想保护“未定义”不被重新定义,因为这是文章所建议的。
所以在 CoffeeScript 中,我可以这样做:
((skillet, $) ->
skillet.fry ->
alert('hi');
)( window.skillet = window.skillet || {}, jQuery);
并接近文章中描述的格式:
(function(skillet, $) {
return skillet.fry(function() {
return alert('hi');
});
})(window.skillet = window.skillet || {}, jQuery);
但是当我尝试在...中添加未定义时,由于严格模式而出现编译错误:
http://arcturo.github.com/library/coffeescript/07_the_bad_parts.html
“某些变量(例如 undefined)不再可写”
我想知道是否有解决方法?我想保持严格模式,因为使用它可能有我不完全了解的好处。但即使谷歌搜索关闭它的方法......我想出了零。
感谢您的关注!