Когда я пытаюсь создать объект Range в ace.js, выдается ошибка "Illegal Constructor"
Я пытаюсь создать объект Range для ace.js
редактор в моем коде, но он не работает. Это терпит неудачу так, как я не могу понять. В документации Ace этот конструктор:
new Range(Number startRow,
Number startColumn,
Number endRow,
Number endColumn)
Но когда я попробую это в моем коде:
new Range(0, 0, 0, 1)
Это поднимает Uncaught TypeError: Illegal constructor
ошибка. Что вызывает это поведение, и почему оно не соответствует документации?
3 ответа
Range
это нативный тип большинства браузеров, которые вы не можете создать. Я не очень знаком с Ace, но я предполагаю, что они используют какое-то пространство имен, чтобы вы могли сделать что-то вроде new Ace.Range()
,
Редактировать: похоже, что они используют CommonJS, так что вы можете импортировать метод и псевдоним его так, как вам нравится:
var Range = require('ace/range').Range,
mine = new Range(0,0,10,0);
Замещать require('ace/range').Range
с ace.require('ace/range').Range
Это решение var Range = ace.acequire('ace/range').Range;
работает для меня!!!
Полный код: /questions/19937673/mozhno-li-serializovat-obekt-ace-session/19937684#19937684