CoffeeScript 中的命名空间

2023-11-22

我想像在 javascript 中那样使用关键字“with”来使用命名空间,但是 CoffeeScript 将此报告为保留关键字并拒绝编译,有什么方法可以在 cs 中使用命名空间吗?

特别是,我想动态包含 CoffeeScript 文件(受信任的源),例如加载数据库架构的模型,但我希望包含的脚本能够访问本地命名空间。


Edit:

这就是我想做的。我正在建立一个 Web 框架,将目录树映射到基于express和mongoose的应用程序。例如,有一个子目录“models”,其中包含一个文件“user.coffee”,其中的代码如下:

name:
    type: String
    unique: on
profiles: [ Profile ]

Whereby Profile是一个位于名为的本地对象中的类model。当加载用户模型时,我希望它访问位于本地模型存储中的模型类。

我现在的解决方法是写model.Profile进入文件“user.coffee”。希望我的意思很清楚。


2nd Edit

这是我在不使用的情况下做到的with:

用户.coffee

name:
    type: String
    unique: on
profiles: [ @profile ]

简介.咖啡

content: String

这是动态加载的方式:

for fm in fs.readdirSync "#{base}/models"
    m = path.basename fm, '.coffee'
    schema[m] = (()->
        new Schema coffee.eval (
            fs.readFileSync "#{base}/models/#{fm}", 'utf8'
        ), bare: on
    ).call model
    mongoose.model m, schema[m]
    model[m] = mongoose.model m

对我来说似乎是一个不错的解决方案。


别人的意见强加给你?现在是黑客时间™!

o =
  a: 1
  b: 2
  c: 3

`with(o) {//`
  alert a
`}`

“编译”为:

var o;
o = {
  a: 1,
  b: 2,
  c: 3
};
with(o) {//;
alert(a);
};

遗憾的是,这又是Doug Crockford的观点被奉为福音的另一个领域。with被视为有害的声明基于属性写入的模糊性而拒绝它,但忽略它与 a 一起使用时的用处只读上下文对象,例如定义类似 DSL 的 API 的上下文对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CoffeeScript 中的命名空间 的相关文章

  • 将 OoXml 插入单词抛出错误:未知

    我一直在尝试通过office js将OOXML插入到word文档的正文内容中insertOoXML 方法 我什至尝试过最简单的实现 认为我在尝试替换 XML 本身中的 fieldCodes 时做了一些不正确的事情 所有结果都是这样Error
  • 在 javascript/jquery 中将光标更改为等待

    当调用函数时 如何让光标更改为此加载图标以及如何将其更改回 javascript jquery 中的普通光标 在你的 jQuery 中使用 body css cursor progress 然后又恢复正常 body css cursor d
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 使用 vscode 调试器调试 next.js

    我已经使用安装了一个项目创建下一个应用程序 https github com segmentio create next app 我需要使用我的编辑器 vscode 调试服务器端渲染 所以我访问过vscode recipes 如何调试 ne
  • 如何测试 javascript 闭包内的函数

    这似乎是不可能的 也可能是 但我正在尝试更多的 TDD 但我总是在闭包方面碰壁 假设我有以下内容 function createSomething init function privateMethod param return init
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win

随机推荐

  • Row_Number 超过 其中 RowNumber 介于

    我尝试使用 row number 从表中选择某些行 但是sql会提示错误msg Invalid column name ROWNUMBERS 有人可以纠正我吗 SELECT ROW NUMBER OVER ORDER BY Price AS
  • SQL:如何在 orderby 中将 null 和空条目排序到前面?

    如果我的数据库中有以下条目 ID Name1 空 2 空字符串 3 阿尔法4 布拉沃5 查理 那么使用 ORDER BY 时如何将有名称的行排序到前面 如果我使用 ORDER BY Name 我会得到上面的列表 但我实际上想要 3 Alph
  • 解析注释行

    鉴于以下基本语法 我想了解如何处理注释行 缺少的是处理
  • 重定向后从 XHR 对象获取最终 url

    假设我使用 ajax 例如通过 jQuery 对实现 PRG 模式的 API 执行 POST 请求 因此它会重定向我 POST some api HTTP 1 1 303 See Other Location some other loca
  • 关于 stun 服务器的困惑

    我的要求是 我将打开一个UDP服务器监听X端口 本地机器 和machine public IP 可以发送UDP包给我 我的机器没有public IP 基本上我需要stun 我正在测试stuntman服务器 客户端项目 我在服务器 公共IP
  • x86_64 寄存器 rax/eax/ax/al 覆盖完整寄存器内容[重复]

    这个问题在这里已经有答案了 正如广泛宣传的那样 现代 x86 64 处理器具有 64 位寄存器 可以以向后兼容的方式用作 32 位寄存器 16 位寄存器甚至 8 位寄存器 例如 0x1122334455667788 rax 64 bits
  • 字符串不可变有什么好处?

    有一次我研究了字符串不可变的优点 因为它可以提高内存性能 有人可以向我解释一下吗 我在互联网上找不到它 不变性 对于字符串或其他类型 可以有很多优点 它使推理代码变得更加容易 因为您可以对变量和参数做出否则无法做出的假设 它简化了多线程编程
  • 使用 IDataReader 作为 IEnumerable 的最佳方法?

    我需要使用Linq on any 数据读取器像这样的实现 var c sqlDataReader AsEnumerable Count Example public abstract class Test public abstract S
  • 将数组拆分为唯一的对

    假设我从一个简单的数组开始 理论上可以是任意长度 ids array 1 2 3 4 将这个数组拆分为一组唯一对的数组的最佳解决方案是什么 例如 pair 0 array 1 2 pair 1 array 1 3 pair 2 array
  • 使用 Laravel Eloquent 直接增加或减少列中的数字更新

    我有一个查询 我在哪里使用 Eloquent 来查找 ID 但我需要的是直接在 eloquent 查询中减去 与查询生成器中相同 文档代码 flight App Flight find 1 flight gt name New Flight
  • FirebaseMLVisionTextModel 已被弃用,取而代之的是 MLKitTextRecognition

    我正在使用 Firebase MLKit TextRecognition API 尝试更新时出现警告 pod Firebase MLVisionTextModel 如何更新 Firebase MLKit 库 FirebaseMLVision
  • 如何按嵌套值对 JSON 对象进行排序?

    我有一个 ajax 调用 它返回一个非常复杂的 JSON 对象 并且我很难对其进行排序 My call post reports ajax arguments function data 响应 10001 unitname Fort Wor
  • 为什么 Rust 中的 const 函数不能调用关联函数?

    This const fn pow2 exp u32 gt u32 u32 pow exp 2 导致编译器错误 error E0015 calls in constant functions are limited to constant
  • 隐藏 ListBox 控件中的垂直滚动条

    我正在开发一个应用程序 需要ListBox控制 不幸的是 当我在中添加太多项目时ListBox 显示垂直滚动条 我可以做些什么来隐藏显示的垂直滚动条ListBox 我可以看到有一个隐藏水平滚动条的属性 但没有垂直滚动条的属性 问题解决了 我
  • 如何在 .NET 类库中创建“抽象”枚举?

    我正在制作一个服务器库 其中数据包关联是通过枚举完成的 public enum ServerOperationCode byte LoginResponse 0x00 SelectionResponse 0x01 BlahBlahRespo
  • Python:数据与文本?

    Guido van Rossum 的演讲蟒蛇3000提到了一些最终可以让从 Python 2 过渡到 Python 3 更容易的事情 他专门讨论了文本处理 因为将 Unicode 作为 Python 3 中字符串的唯一表示形式是主要变化之一
  • UPDATE 锁如何防止常见形式的死锁?

    The SQL Server 在线书籍比如说UPDATE锁可以防止常见形式的死锁 更新锁 更新 U 锁可防止常见形式的死锁 他们如何防止常见形式的僵局 我这么说是什么意思 死锁的一种常见形式是两个进程尝试从共享 S 锁升级 即读锁 到独占
  • 将边框应用于 Chrome 中的复选框

    我的网站上有很多表格 当然 其中的许多字段都是必需的 如果必填字段留空 则会为其分配一个 错误 类 并且我尝试用红色圈出该字段 无论它是文本字段 下拉菜单还是复选框 我的 css 文件中有以下代码 error input error sel
  • 从 SQL 查询到应用程序代码的回溯?

    有没有办法在 Rails 开发日志中找到哪一行代码生成了 MySQL 语句 为了进行一些性能优化 我想找到我的应用程序的哪个部分正在创建哪些 MySQL 查询 当我查看日志时 我看到我所做的每个网络请求上都会闪烁数百个查询 我需要找出它们来
  • CoffeeScript 中的命名空间

    我想像在 javascript 中那样使用关键字 with 来使用命名空间 但是 CoffeeScript 将此报告为保留关键字并拒绝编译 有什么方法可以在 cs 中使用命名空间吗 特别是 我想动态包含 CoffeeScript 文件 受信