В чем разница между RegExp('hi')
и new RegExp('hi')
?JavaScript: `новый RegExp ('hi')` versus `RegExp ('hi')`?
Соответствует ли ключевое слово new
?
В чем разница между RegExp('hi')
и new RegExp('hi')
?JavaScript: `новый RegExp ('hi')` versus `RegExp ('hi')`?
Соответствует ли ключевое слово new
?
Это идентично
RegExp
конструктор является%RegExp%
Внутренним объектом и начальное значениеRegExp
свойства глобального объекта. КогдаRegExp
вызывается как функция, а не как конструктор, он создает и инициализирует новый объектRegExp
. Таким образом, вызов функцииRegExp(…)
эквивалентен выражению создания объектаnew RegExp(…)
с теми же аргументами.
От http://www.ecma-international.org/ecma-262/6.0/#sec-regexp-constructor
Я не могу не чувствовать, что это должна быть вики сообщества, так как в этом ответе есть довольно много оригинального контента. – 4castle
@ 4castle Я лично не знаю критериев ответа, чтобы быть хорошим сообществом wiki. Я проверил http://meta.stackexchange.com/questions/11740/what-are-community-wiki-posts и не уверен, что быть «не очень оригинальным» является одним из них. – zerkms
Конструктор должен использовать для таких ситуаций: 'RegExp ('привет' + someVariable)', где вы на самом деле построить (Дух!) Выражение. Если вы знаете это с самого начала, перейдите к '/ hi /'. – Seb
'function MyObject (arg) {if (! (This instanceof MyObject)) возвращает новый MyObject (arg); } '- это обычный способ реализовать это самостоятельно. – 4castle