В этой статье описываются расширенные функции объектно-ориентированного программирования в JavaScript. Поделитесь этим для вашей ссылки, следующим образом:
1. Три способа создания объектов:
Первый метод строительства: новый объект
var a = new объект (); ax = 1, ay = 2;
Второй метод строительства: прямое измерение объекта
var b = {x: 1, y: 2};Третий метод строительства: определить тип
Функциональная точка (x, y) {this.x = x; this.y = y;} var p = новая точка (1,2);2. Доступ к объекту
Получить доступ к свойствам объекта
Обозначение с кронштейном: герой [«Имя»]. В
Облигация точка: hero.name.
Если доступное свойство не существует, не определено будет возвращено.
Методы доступа к объектам
Добавьте пару кронштейнов после названия метода: hero.say ().
Метод доступа, такой как атрибут доступа: герой ['say'] ().
3. Удалить атрибуты и методы
// Создать пустой объект var hero = {}; // Добавить атрибуты и методы в hero.name = "javascript"; hero.value = "helloworld"; hero.sayname = function () {return "hello" + hero.name;}; // test alert (hero.name); // вывод JavascriptAlert (hero.sayname ()); // Вывод Hello JavaScript // Удалить атрибут имени объекта Hero Delete Hero.name; // Test Alert (hero.sayname ()); // Вывод привет неопределенно4. Используйте это значение
// Создать пустой объект var hero = {}; // Добавить атрибуты и методы к герою object hero.name = "javascript"; hero.value = "helloworld"; hero.sayname = function () {return "hello" + this.name;}; // test alert (hero.name); // вывод JavascriptTalet (hero.sayname ()); // Вывод Hello JavaScriptСуммировать:
① Это на самом деле относится к «этому объекту» или «текущему объекту».
② Использование этого является проблемой для большинства людей. Так что не рекомендуется использовать слишком много!
5. Встроенные объекты
Встроенные объекты могут быть приблизительно разделены на три группы:
① Объекты класса инкапсуляции данных, включая объект, массив, логический, номер и строка. Эти объекты представляют разные типы данных в JavaScript, и все они имеют свои собственные значения возврата типа, а также неопределенные и нулевые состояния.
② Объекты класса инструментов - включая объекты, используемые для предоставления отслеживания, таких как математика, дата, повторная эксплуатация и т. Д.
③ Объекты класса ошибок - включая общие объекты ошибки и различные другие более специальные объекты класса ошибок. Они могут помочь нам исправить рабочее состояние программы, когда произойдут определенные исключения.
6. Объект объекта
Объект является родительским объектом всех объектов в JavaScript, что означает, что все объекты наследуются от объекта объекта.
Создайте пустой объект:
var object = {}; var obj = new Object ();7. Случай объект
Объекты массива используются для хранения нескольких значений в одной переменной.
Создайте пустой объект массива:
var object = {}; var obj = new Array ();Например, 1:
// инвертировать пример строки // Определить строку var str = "a, b, c, d, e, f, g"; // Использовать метод split () объекта строки, чтобы разрезать строку в массив var arr = str.split (","); // Использовать метод обратного () объекта массива, чтобы обратить вспять элементы в массиве. arr = arr.reverse (); // тест печати оповещения (arr.tostring ());8. Стронг объект
Различия между строковыми объектами и основными типами строк:
var str = "hello"; var obj = new String ("world"); alert (typeof str); // typeof stringAlert (typeof obj); // объект типаНапример, 1:
// Пример определения того, содержит ли строка указанную строку // определение двух строк, которые будут оцениваться, var str = "abcdefg"; var substr = "efg";/** Определить функцию, чтобы судить, содержит ли строка указанную строку * * First Parameter: строка для суждения * * Второй параметр: новая строка. String (str); // перехватывать судеянную строку var result = string.substr (str.indexof (substr), substr.length);/** Определить, пуста ли перехвата * * * является пустой, указывая, что указанная строка не содержит указанную строку * * не пустая, указывая на то, что указанная строка */if (result = suptr) {return true; false;}} alert (sub (str, substr));9. Прототип
Сама функция также является объектом, содержащим методы и свойства. Теперь то, что мы хотим изучать, - это еще одно свойство объекта функции - прототип.
Добавить методы и свойства, используя прототипы
Перепишите свойства прототипа, используя свои собственные свойства
Расширить встроенные объекты
Добавить методы и свойства, используя прототипы
Ниже создать новый объект функции и установить некоторые свойства и методы:
Функция героя (имя, цвет) {this.name = name; this.color = color; this.whatareyou = function () {return "i -" + this.color + "" + this.name; }} var hero = new Hero ("javascript", "red"); alert (hero.whatareyou ()); // Вывод Я красный JavaScriptДобавьте некоторые свойства и методы в вышеуказанный объект функции героя:
Hero.prototype.price = 100; hero.prototype.ration = 3; hero.prototype.getInfo = function () {return "Rating:" + this.rating + ", цена:" + this.price;} alert (hero.getinfo ()); // Рейтинг вывода: 3, цена: 100Приведенный выше метод также можно сделать так:
Hero.prototype = {цена: 100, рейтинг: 3, getInfo: function () {return "Rating:" + this.rating + ", цена:" + this.price; }};Перепишите свойства прототипа, используя свои собственные свойства
Что мне делать, если собственные атрибуты объекта такие же, как атрибут прототипа? Ответ заключается в том, что собственные атрибуты объекта имеют более высокий приоритет, чем атрибуты прототипа.
функция hero () {this.name = "jscript";} hero.prototype.name = "javascript"; var hero = new Hero (); alert (hero.name); // вывод JScriptDelete hero.name; Alert (hero.name); // Вывод JavaScriptРасширить встроенные объекты
// Добавить функцию, чтобы судить о массиве объектов Array Prototype.prototype.inarray = function (color) {for (var i = 0, len = this.length; i <len; i ++) {if (this [i] === color) {return true; }} вернуть false;} // Определить объект массива var a = ["red", "green", "blue"]; // test alert (a.inarray ("red")); //truealert(a.inarray("yellow ")); //ЛОЖЬ10. Наследование
Если оба класса имеют один и тот же тип экземпляра, то между ними существуют некоторые отношения. Мы называем обобщенную связь между типами того же экземпляра «наследование».
Отношение наследования содержит как минимум три значения:
① Примеры подклассов могут делиться методами родительских классов.
② Подклассы могут переопределить методы родительского класса или расширять новые методы.
③ Подклассы и родительские классы являются «типами» экземпляров подклассов.
В JavaScript «наследство» не поддерживается. То есть в JavaScript нет унаследованного синтаксиса. В этом смысле JavaScript не является прямым объектно-ориентированным языком.
11. Прототип цепочка
Цепочка прототипа - это метод наследования по умолчанию, сформулированный стандартом ECMASCRICE.
Например:
Функция a () {this.name = "a"; this.tostring = function () {return this.name};} функция b () {this.name = "b";} функция c () {this.name = "c"; this.age = 18; this.getage = function () {return.age};Объяснение:
Объект создается непосредственно в свойстве прототипа объекта B и не расширяет исходный прототип этих объектов.
Новая сущность создается через новый a (), а затем используется для перезаписи прототипа объекта.
JavaScript - это язык, который полностью зависит от объектов, и нет концепции класса.
Следовательно, необходимо напрямую создать объект с новым a (), прежде чем соответствующая работа по наследству может быть завершена через свойства сущности.
После завершения такой реализации наследования любая модификация, переписывание или удаление A () не влияют на b ().
Унаследован только от прототипа:
Функция a () {} a.prototype.name = "a"; a.prototype.tostring = function () {return this.name}; function b () {} b.prototype = a.prototype; b.prototype.name = "b"; функция C () {} c. = 18; c.prototype.getage = function () {return this.age};Наследование между объектами (расширенное содержание, не может быть) (мелкая копия)
// Функция принимает объект и возвращает свою функцию копирования extendCopy (p) {var z = {}; // Определить пустой объект z для (var i in p) {// var i = 0; я <p.length; i ++ z [i] = p [i]; // Если вы рассматриваются как массив, вы можете понять} // uber -атрибут: Используйте P в качестве родителя Z и точки Z для прототипа P Z.Uber = P; return z;} // определить объект A, но объект A не является объектом функции var a = {name: "a", toStr: function () {return this.name;}} // определить объект B, но объект b не является объектом функции var b = extendCopy (a); b.name = "b"; b.toStr = function () {return this.Uber.toStr () + "," + this.name;}; // определить объект C, но объект C не является объектом функции var c = extendCopy (b); c.name = 18; alert (c.toStr ()); // Вывод A, B, 18PS: Многие макеты кода в учебном пособии не стандартизированы. Вот несколько инструментов форматирования и благоустройства кода JavaScript для всех:
Инструмент форматирования кода JavaScript:
http://tools.vevb.com/code/js
Украшение кода JavaScript/сжатие/Форматирование/Инструменты шифрования:
http://tools.vevb.com/code/jscompress
JSMIN Online JS сжатие:
http://tools.vevb.com/code/jsmincompress
For more information about JavaScript, please check this site's special topics: "Javascript object-oriented tutorial", "Summary of json operation skills in JavaScript", "Summary of JavaScript switching effects and techniques", "Summary of JavaScript search algorithm skills", "Summary of JavaScript animation special effects and techniques", "Summary of JavaScript errors and debugging skills", «Сводка структур данных JavaScript и навыков алгоритма», «Сводка алгоритмов и методов обхода JavaScript» и «Сводка использования математических операций JavaScript»
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.