Прототипы и закрытие являются наиболее распространенными, наиболее трудными для понимания, и его легче всего рассматриваться как две части проблемы в JavaScript. Конечно, у них также есть свои расширения, такие как цепочки объема, наследство и т. Д. Написание всегда будет глубоко понимать. (Это не имеет ничего общего с названием, поэтому я вздохнул. Каждый раз, когда я чувствую, что понимаю, я все еще получаю много наград после прочтения)
Давайте впервые поговорим о новом ключевом слова в JavaScript. Обычно мы используем его для создания объекта экземпляра класса. В JavaScript после создания объекта мы наследуем атрибуты и методы класса. Давайте продемонстрируем это через код
Функция Person (name) {this.name = name;} person.age = "23"; person.prototype.say = function () {console.log ("i" + this.name);}; var person = new Person ("wang fang"); console.log (person.name, // wang fang person.height // не определен); Person.say (); // Я Wang Fang Console.log (Person.name, // Person Person.age // 23); Person.say (); //Person.say не функцияДавайте посмотрим на эту линию
var Person = новый человек ("Wang Fang");
Что сделал новый? Ниже приведено, что делает работа JS Engine
var obj = {}; obj .__ Proto__ = Person.prototype; var result = person.call (obj, "wang fang"); return typef result === 'obj'? Результат: OBJ;1. Сначала создайте новый объект
2. Point obj's __proto__ для прототипа объекта человека, а затем установлена прототипа цепочки объекта obj: obj-> person.prototype-> object.prototype-> null
3. Вызовите функцию человека в пространстве выполнения объекта OBJ и передайте параметр «Wang Fang». Это эквивалентно var result = obj.person ("Wang Fang"). После того, как это предложение будет выполнено, OBJ генерирует имя атрибута и назначает его «Wang Fang».
4. Определите возвратное значение. Если нет возврата или возвращаемое значение, возвращается, верните OBJ. В противном случае возвращаемое значение возвращается как новый объект (немного поворота, тройной оператор, пожалуйста, проверьте его самостоятельно)
Суммировать:
Основной функцией нового ключевого слова JavaScript является наследование, как указано в приведенном выше примере, но помните, что этот человек является функцией, в то время как человек является объектом. Что касается разницы между функциями и объектами, я напишу ее снова, если у меня будет время.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.