我刚刚开始研究不同的编程风格(OOP,功能,程序).
我正在学习JavaScript并开始使用underscore.js并在文档中出现了这一小部分.文档说,underscore.js可以用于面向对象或功能样式,并且这两者都可以产生相同的结果.
_.map([1, 2, 3], function(n){ return n * 2; });
_([1, 2, 3]).map(function(n){ return n * 2; });
Run Code Online (Sandbox Code Playgroud)
我不明白哪一个是功能的,哪一个是OOP,我不明白为什么,即使经过对这些编程范式的一些研究.
我正在阅读一篇文章,说这{}是一个有效的JavaScript程序.
我试过了,它工作正常.
然后我尝试了这个并且它有效:
{name:'Lord Stark'} <---整个程序(不将其分配给变量或任何东西)
但后来我尝试了以下内容,并在逗号中引发了错误.
{name:'Lord Stark',reignsOver:'Winterfell'} <---这又是整个节目
我的问题是,为什么具有多个属性(以及逗号)的普通对象返回错误,除非在只有一个条目的对象不分配给变量时?
我正在测试reduce/inject方法和ruby,并遇到意外结果的命令.
(1..2).reduce(:<<) 产生 #=> 4
我相信我明白了什么reduce,inject但我不理解<<操作员.
我正在读一篇关于闭包如何工作的文章.我理解得差不多了,除了第5,在文章.
它正在讨论闭包如何使用此示例使用循环:
function buildList(list) {
var result = [];
for (var i = 0; i < list.length; i++) {
var item = 'item' + list[i];
result.push( function() {alert(item + ' ' + list[i])} );
}
return result;
}
function testList() {
var fnlist = buildList([1,2,3]);
// using j only to help prevent confusion - could use i
for (var j = 0; j < fnlist.length; j++) {
fnlist[j]();
}
}
testList();
Run Code Online (Sandbox Code Playgroud)
出现三个警报,每个警告都说明 …