Неверная ссылка на Typescript после сборки

Предложение «В JavaScript, ALMOST all - это объект» является правильным, потому что MAIN-коды (объекты, функции, массивы) являются объектами JavaScript. Код JavaScript использует 9 разных единиц плюс 1 (несколько): - 01. array - 02. boolean - 03. function - 04. null - 05. number - 06. object - 07. regexp - 08. string - 09. undefined - 10. multiple

НО JavaScript-объекты: - НЕ являются теми же существами, что и «объекты» на других объектно-ориентированных языках. - они представляют собой набор пар имен-значений. - у всех есть функция создания (его конструктор). - все INHERIT являются членами прототипа-объекта его конструктора, и это его прототип. - все функции являются объектами, но не все объекты являются функциями. - функции имеют область, объекты НЕ (дефект дизайна, на мой взгляд). - Объект, функция, массив, строка, ... с первым CAPITAL - это функции !!! - важнее различия в объектах и ​​функциях JS, чем его общие черты. - имя «экземпляр» в JS имеет разное значение с именем «экземпляр» в теории знаний, где экземпляр наследует атрибуты его общей концепции. В JS обозначается только его конструктор. JavaScript получил имя «экземпляр» из класса «наследование на основе класса» ool (java), где это подходящее имя, потому что эти объекты наследуют атрибуты классов.

JS-функции ARE JS-объекты, потому что: 1) они могут иметь такие элементы, как JS-объекты:

    > function f(){}
    undefined
    > f.s = "a string"
    "a string"
    > f.s
    "a string"

2) у них есть конструктор-функция, как и все JS-объекты, функция Function:

    > (function f(){}) instanceof Function
    true

3) как все JS-объекты, их прототип-объект совпадает с его конструктором прототип:

    > (function f(){}).__proto__ === Function.prototype
    true
    > ({}).__proto__ === Object.prototype
    true
    > (new Object).__proto__ === Object.prototype
    true

4), конечно, JS-функции как СПЕЦИФИЧЕСКИЕ JS-объекты имеют и дополнительные атрибуты, как и все функции в языках программирования, что JS-объекты не имеют, как вы можете звонить ( выполнить) их с информацией ввода и вывода.

ВСЕ НЕ является объектом, потому что, например, мы НЕ можем добавлять членов в литеральную строку:

    > var s = "string"
    undefined
    > s.s2 = "s2string"
    "s2string"
    > s.s2
    undefined
0
задан Fredrik Anfinsen 20 February 2019 в 16:36
поделиться