1

使用自调用函数来隐藏这样的函数和变量是个好主意吗?

有没有更好的办法?

它比在同一级别上声明函数和变量要慢吗?

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

感谢您的帮助。

4

1 回答 1

1

是的,我相信这很好。事实上,当你在 CoffeeScript 中创建“类”时

class Test
  constructor: ->
    @foo = 'bar'

它编译为:

var Test;

Test = (function() {

  function Test() {
    this.foo = 'bar';
  }

  return Test;

})();

这主要与您发布的代码做同样的事情。

于 2012-07-14T02:12:00.103 回答