2015-04-21 4 views
0

Позднее привязка при обращении к типам означает, что тип неизвестен до выполнения.Есть ли у JavaScript поздняя привязка (в смысле типа)?

Является ли JavaScript поздним языком?

Я предполагаю, что это связано с тем, что он имеет небольшое количество примитивных типов, а все остальное - экземпляр объекта, а характер типа принудительно выполняется во время выполнения.

var a = 1, b = 'a', c; 

c = a + b; // c is a string, but this is only determined at runtime? 
+2

JS _only_ имеет время выполнения – Alnitak

+0

@Alnitak, так что это «да, типы позднего в JavaScript», то? – Ben

ответ

0

Late-binding на самом деле не относится к типам данных, это тип-вывод. Javascript является компилятором точно в срок (JIT), все типы выводятся во время выполнения.

Late-binding больше относится к объектно-ориентированным языкам, более конкретно к объектам (полиморфизм/наследование и т. Д.), А не к базовым типам.

Надеюсь, что это поможет.

+0

Как я понимаю, термин «поздняя привязка» может применяться как к динамической диспетчеризации (то есть к разрешению времени исполнения), так и по типу разрешения. Основываясь на вашем ответе, похоже, что JavaScript демонстрирует позднюю привязку типов. – Ben

+1

Ну, сама причина, по которой я различал вывод типа и позднюю привязку, заключается в том, что Late-binding больше относится к разрешению метода, javascript не показывает типичную v-таблицу методов или наследования для того, чтобы использовать термин late-binding, вместо этого это прототипный (предметный) язык. В последнее время привязка к последней привязке в основном касается (как раз перед ее запуском, для позднего связывания), разрешения метода выполняются для сложных объектов, что не относится к javascript напрямую. – Nisk

Смежные вопросы