首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在clojurescript中使用构造函数声明javascript对象

如何在clojurescript中使用构造函数声明javascript对象
EN

Stack Overflow用户
提问于 2018-01-24 18:03:22
回答 1查看 144关注 0票数 0

我的代码使用realm库工作,有时它调用realm构造器:

代码语言:javascript
运行
复制
(dependencies/realm. (clj->js options))

Realm是这样声明的:

代码语言:javascript
运行
复制
(def realm (js/require "realm"))

现在,我想临时模拟realm对象,使其不调用库。我尝试过这种方法:

代码语言:javascript
运行
复制
(def realm  #js {:schemaVersion (fn [])
                 :close         (fn [])})

它可以很好地模拟close()和schemaVersion()函数,但是我得到了错误dependencies.realm is not a constructor

如何将构造函数声明添加到realm对象占位符?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-28 11:23:58

在javascript中,构造函数是一个函数。相反,您应该有一个返回对象的函数:

代码语言:javascript
运行
复制
(def realm (fn [] #js {}))

我假设schemaVersionclose是静态方法。您可以稍后使用以下命令添加它们:

代码语言:javascript
运行
复制
(goog.object/extend realm #js {:schemaVersion (fn [])
                               :close         (fn [])})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48419625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档