Object
- это функция, функции которой имеют метод apply
.
console.log(Object.constructor === Function);
как и для всех функций, ссылающихся применить вызов функции, другими словами, если F
является функцией, то F(x, y, z)
такая же, как F.apply(this, [x, y, z])
(первый аргумент будет значение this
, когда внутри функции).
Из спецификации (раздел 19) Object
в Javascript (то есть то, что изначально связан с именем «Объект» в глобальный объект) является конструктором, который может быть вызван с дополнительным аргументом x
и:
Если NewTarget
не является ни undefined
, ни активной функцией, то return OrdinaryCreateFromConstructor(NewTarget, "%ObjectPrototype%")
. Это означает, что вызов new Object()
- это как письмо ({})
.
Если значение null
, undefined
или не указано, возврат ObjectCreate(%ObjectPrototype%)
. Это означает, что вызов Object(undefined)
или Object(null)
(без new
) также похож на запись ({})
для создания нового стандартного объекта.
В противном случае возвращается ToObject(value)
. Это означает, что Object(x)
вызывает преобразование в объект. Например, Object(42)
предоставит вам номер в коробке, но Object(x)===x
, если x
уже объект.
IMO вызов Object.apply
не собирается очень часто в программах JavaScript (вы, вероятно, можете быть счастливым продуктивным Javascript программистом для всей вашей жизни без того, чтобы прикоснуться к такому роду вещь).
Применить является свойством функции, а 'Object' является функцией. Следовательно, применение доступно. Попробуйте 'Typeof (Object)' – Rajesh
Если вы заметили, 'typeof (Object)' is "function". Таким образом, он имеет весь метод в Function.prototype (например, call, apply). И я тоже не вижу случаев, когда нам нужно использовать 'Object.apply'. – vothaison
@ Vothaison, Пожалуйста, добавьте этот комментарий в качестве ответа. –