学习使用CoffeeScript(一)以及部分js基础知识扫盲……

2014年3月26日22:39:49

前一阵子一直听马老板推荐coffee script 这个神器。
我的理解是这货是一个用于JS预处理的东东,coffee 之于 javacript 就如 less 之于 css。
今天难得下班比较早,外加早上又不小心点到她人人主页围观了一会儿以及下午又被来面试前端的童鞋的高水平给刺激到了..
于是就稍微研究了一下这个东西,顺便开启博客恢复更新模式..
好了,废话不多说了,先上coffeescript 的官方网站: http://coffeescript.org/
然后打开nodejs客户端,输入以下命令:
npm install -g coffee-script

1-install-coffeescript

下载安装完之后就可以使用啦,文档的话还是参照官方网站好了。
2-test-coffeescript
2-test-coffeescript
接下来安装官网上的介绍做一下示例程序~
3-demo-coffeescript
3-demo-coffeescript
先是简单的一个定义语句

4-use-coffeescript

由 coffee 转为 javascript 之后,多了不少东东呢..
5-coffeescript-to-javascript
5-coffeescript-to-javascript
嗯.. js孤陋寡闻的我还是研究下这个“简单”的代码吧。。
首先,这个似乎是由一个匿名函数包裹起来.. 最后为啥尼玛又call调用自己啊我戳。。
查阅了一下 MDN的手册 ,
上面的解释是:
 The call() method calls a function with a given this value and arguments provided individually.
说人话大概就是:call()方法根据给定的this值和若干参数来调用一个函数…
实际操作呢结合到上面的代码,就是:直接调用这个匿名函数的call方法,木有参数。
查阅了JS高级程序设计这本书的第116以及117页,5.5.5 函数属性和方法。
上面写到:
每个函数都包含两个非继承而来的方法:apply()和call()。两者的用途都是在特定的作用域中调用函数,实际上等于设置函数体内的this对象的值。
而函数体内的this对象,由5.5.4 函数内部属性 可知,
函数内部有两个特殊对象,arguments 和 this, 其中 this 的行为与 Java和C#中的this大致类似。
换句话说,this引用的是函数据以执行的环境对象——或者也可以说是this值(挡在网页的全局作用域中调用函数时,this对象引用的就是window)。
举个栗子:
window.color = “red”;
var o = {color:”blue”};
function sayColor() {
     alert(this.color);
}
sayColor();       // ???
o.sayColor = sayColor ;
o.sayColor();   //  ???
—————————
一定要牢记:函数的名字仅仅是一个包含指针的变量而已。因此,即使是在不同的环境中执行,全局的sayColor()函数与o.sayColor() 指向的仍然是同一个函数!
—————————
以上
清风迅来(XuXun)
Dalston Xu

Leave a Reply

Your email address will not be published. Required fields are marked *

18 − fourteen =