Да, она вызывает функцию .call
из контекста функции documentCreateElement
.
Так что в конечном итоге это то же самое, что и ...
documentCreateElement.call(scopeDocument, nodeName);
Я предполагаю, что естьссылка на Function.prototype.call
где-то, например
var call = Function.prototype.call
Они, вероятно, кэшируют метод call
на тот случай, если он будет перезаписан на Function.prototype
.
РЕДАКТИРОВАТЬ:
Как указано @ ruakh ниже, если Function.prototype.call
было перезаписано, то call.call
не будет работатьпоскольку он также основан на Function.prototype
.
documentCreateElement
- это ссылка на метод document.createElement
, а этот метод является хост-объектом, поэтому нет гарантии, что он включит Function.prototype
в свой прототипchain.
Это позволит им использовать .call
в хост-объектах в этих случаях.