当我尝试在ace.js中创建一个Range对象时,会抛出“Illegal Constructor”错误

时间:2012-05-04 16:41:34

标签: javascript ace-editor

我正在尝试在我的代码中为ace.js编辑器创建一个Range对象,但它不起作用。它以一种我无法弄清楚的方式失败。在the Ace documentation中,此构造函数为:

new Range(Number startRow,
          Number startColumn,
          Number endRow,
          Number endColumn)

但是当我在我的代码中尝试这个时:

new Range(0, 0, 0, 1)

引发Uncaught TypeError: Illegal constructor错误。是什么导致了这种行为,为什么它不符合文档?

4 个答案:

答案 0 :(得分:15)

Range是一种本机类型,是大多数无法实例化的浏览器。我对Ace并不熟悉,但我猜他们会使用某种命名空间,这样你就会做new Ace.Range()之类的事情。

编辑:看起来他们正在使用CommonJS,因此您可以随意导入该方法并为其设置别名:

var Range = require('ace/range').Range,
    mine = new Range(0,0,10,0);

答案 1 :(得分:2)

require('ace/range').Range替换为ace.require('ace/range').Range

答案 2 :(得分:0)

此解决方案var Range = ace.acequire('ace/range').Range;对我有用!

完整代码:https://stackoverflow.com/a/53387989/630169

答案 3 :(得分:0)

这对我有用:

import { Range } from "ace-builds"