在Coffeescription中使用一个自调用函数来隐藏其余代码中的函数和变量,这是一个好主意吗

Is it a good idea to use a self-invoking function in Coffeescript to hide functions and variables from the rest of the code?

本文关键字:函数 一个 变量 代码 好主意 Coffeescription 调用 隐藏 余代码      更新时间:2023-09-26

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

有更好的方法吗?

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

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;
})();

它主要做与您发布的代码相同的事情。