请问这条JS语句用coffeescript怎么表达才好。
for (var i = 0; i < result.length; i++) {
result[i].content = marked(result[i].content);
};
23 回复
感觉还是 map 方法习惯...
results.map (result) -> result.content = marked result.content
这样挺好的嘛"
result.forEach(function (item) {
item.content = marked(item.content);
});
@zysam 不用这么麻烦, 不知道你新学, 那可以这样
result.content = marked result.content for results in results
晕, 我用的变量名和你不一样, 留意下 刚开始还是不要两个一起学, 觉得困惑会更多点 如果问我我当然是先 coffee...
@jiyinyiyong 手抖... 改了是这样
result.content = marked result.content for result in results
一、
for (var i = 0; i < results.length; i++) {
results[i].content = marked(results[i].content);
};
二、
(function() {
var result, _i, _len;
for (_i = 0, _len = results.length; _i < _len; _i++) {
result = results[_i];
result.content = marked(result.content);
}
}).call(this);
为什么这两句达到效果一样,我原先以为,第一种才会改变results属性的值。而第二种是results属性的值赋到一个新对象result上,而results本身没有改动。这里的js语法很令我很迷糊。
浏览端: 1、正因为JS的地位不可改变(不可能改变、不让改变,原因自己想),再用coffeescript往上套语义,更厚; 2、coffeescript那也叫编译?
服务端: 1、NodeJS就是用JS搞的,说明这个语言有可取之处; 2、但在服务端,写法完全和同类服务端语言不同(基于事件驱动和单进程,这受客户端的启发);
其它: 1、JS没有类,可很多人喜欢class,这不是找乱嘛; 2、JS对面向对象有自己的理解; 3、我们不能全盘接受,也不能全盘否定,对吧?