使用自调用函数来隐藏这样的函数和变量是个好主意吗?
有更好的方法吗?
它是否比在同一级别上声明函数和变量慢?
validator = require 'json-schema'
actionA = do ->
schema =
type : 'object'
properties:
param1 : { type : 'string', required : true }
param2 : { type : 'string', required : true }
encode = (results) -> JSON.parse(results)
(params, callback) ->
res = validator.validate params, schema
value = if res.valid then encode(params) else false
callback value
actionB = do ->
schema =
type : 'object'
properties:
param1 : { type : 'integer', required : true }
param2 : { type : 'integer', optional : true }
encode = (results) -> JSON.stringify(results)
(params, callback) ->
res = validator.validate params, schema
value = if res.valid then encode(params) else false
callback value
谢谢你的帮助。
是的,我相信这很好。事实上,当您在CoffeeScript 中创建"类"时
class Test
constructor: ->
@foo = 'bar'
它编译为:
var Test;
Test = (function() {
function Test() {
this.foo = 'bar';
}
return Test;
})();
它主要做与您发布的代码相同的事情。