Articles of 编码风格

命名闭包是否污染了全局/窗口对象?

根据这个节点风格指南 ,给封闭一个名字是一个好的做法: 对 req.on('end', function onEnd() { console.log('winning'); }); 错误 req.on('end', function() { console.log('losing'); }); 不过,我已经习惯了 function someName() { someStatements(); } …语法作为为该函数创build全局variablessomeName或window.someName东西。 这是一个很好的做法,还是一个非常糟糕的风格指南?

在JavaScriptcallback中,错误参数的正确位置是什么?

我正在写一个JavaScript函数,需要callback。 如果出现错误,callback将被传递一个错误参数。 什么是最好的/最标准的调用约定? callback的错误参数应该是第一还是最后? 我应该传递一个'errorMsg'string,或一个new Error('errorMsg')对象? 也就是说,什么是更正确的 – 这个代码: foo = function(bar, callback) { … if (error) { callback('troz not found'); } else { callback(null, result); } } 或者这个代码: foo = function(bar, callback) { … if (error) { callback(null, 'troz not found'); } else { callback(result); } } 或这个: foo = function(bar, callback) { … […]

使用断言在node.js中进行防御性编程

考虑到有时节点中的错误消息特别无用,我喜欢在我的函数中自由使用断言,这样编程错误就会被尽快捕获,并且我可以得到一条通常指出问题的消息。 function doSomething(arg1, arg2){ assert(!arg1, "arg1 is undefined"); assert(!arg2, "arg2 is undefined"); assert(!arg1.expectedFn, "arg1 does not have expectedFn"); arg1.expectedFn(function(blah){ … } } 这是在节点/ JavaScript程序中做的特别糟糕的事情? 这是否对性能有影响?