Объект
Тип объекта
Объект - это неупорядоченная коллекция, которая может хранить объекты любого типа, и все остальные объекты наследуются от этого объекта.
Существует два типа создания объектов, один из них заключается в том, чтобы использовать новый оператор, а другой - буквальная нотация.
1. Создайте объект, используя новый оператор
var obj = new Object (); // Обратите внимание на капитализацию, вы также можете написать его непосредственно как объект ()
Обратите внимание, что генерирование нового объекта с помощью метода New Object () эквивалентно буквальному методу OBJ = {}.
2. Создать с помощью буквального метода:
var obj = {name: 'trigkit4', возраст: 21}; // Лучше всего добавить полуколонПри объявлении объекта объекта с использованием литералов конструктор Object () не называется (кроме FF)
Object.Prototype Object
Все конструкторы имеют атрибут прототипа, который указывает на объект прототипа.
Object.prototype.print = function () {console.log (this)}; var obj = new object (); obj.print () // объектЭкземпляр OBJ непосредственно наследует свойства и методы объекта.
1. Объекты - это просто специальные данные. Объекты имеют свойства и методы. Javascript-это объектно-ориентированный язык, но JavaScript не использует классы. JavaScript основан на [прототипе] [1], а не на классе.
2. Атрибут: это переменная, связанная с конкретным объектом. Метод: это функция, которую можно вызвать только определенным объектом.
3.JS Объекты представляют собой набор свойств и методов. Метод - это функция, которая является членом объекта. Атрибут - это значение или набор значений (в форме массива или объекта), который является членом объекта.
4.JS объект основан на функции конструктора. При использовании функции конструктора для создания нового объекта можно сказать, что новый объект создается. Свойства представляют собой переменные внутри функции конструктора.
Объекты создаются с использованием функций конструктора:
Cat = New Animal ();
JavaScript-это объектный язык, и почти все, с чем вы сталкиваетесь, является объектом. Однако это не истинный объектно-ориентированный язык программирования (ООП), потому что в его синтаксисе нет класса (класса).
<script type = "text/javascript"> // объект - это коллекция паров имени/значения Var Browser = {// Объект - это имя, заключенное в Curly Braces: "Firefox", ядро: "Gecko"}; </script> // Доступ к атрибутам объекта.Объекты (objct) представляют собой набор свойств, каждое свойство состоит из «пар и значения». JS также определяет специальный объект - массив, который является упорядоченным набором пронумерованных значений.
JS также определяет специальный объект - функция, функция - это объект с исполняемым кодом, связанным с ним. Он выполняет код, вызывая функцию и возвращает результат операции.
В JS нет класса, но он требует нового названия «Прототип объект», так что «Class == Прототип объект», см.: Метод написания класса JavaScript (i)
2. Разница и связь между классами (объекты прототипа) и объектами (экземпляры)
1. Классы (объекты прототипа) являются абстрактными, концептуальными, представляющими тип вещей.
2. Объект конкретный, практичный и представляет собой определенную вещь.
3. Class (объект Prototype) - это шаблон для экземпляров объекта, а экземпляры объектов - это отдельные лица класса.
Распространенным заблуждением является то, что буквальное значение числа не является объектом. Это из -за ошибки в анализаторе JavaScript, которая пытается анализировать оператор точки как часть численного значения поверхности с плавающей запятой.
Есть много обходных путей, чтобы сделать буквальную ценность числа выглядеть как объект.
2..toString (); // вторая точка может быть проанализирована обычно
2.toString (); // Обратите внимание на пробелы перед точкой
(2) .toString (); // 2 рассчитывается первым
Удалить атрибуты
Единственный способ удалить свойство - это использовать оператор удаления; Установка свойства для неопределенного или нулевого на самом деле не удаляет свойство, а просто удаляет связь между свойством и значением.
Три основные особенности объектно-ориентированного JavaScript
Инкапсуляция: внутренняя реализация не рассматривается, рассматривается только функциональное использование
Наследование: наследуйте новый объект от существующего объекта
Полиморфизм: так называемый полиморфизм относится к нескольким состояниям, которые относятся к разным ситуациям.
1. Упаковка
Инкапсуляция означает группирование общих черт (включая атрибуты и поведение) вещей, принадлежащих к одной и той же категории, в класс для легкого использования. Например, человеческое дело может быть инкапсулировано следующими способами:
люди{
Возраст (атрибут 1)
Высота (атрибут 2)
Пол (атрибут третий)
Делай что -то (одно из поведения)
Ходьба (поведение 2)
Говоря (Акт 3)
}
Преимущества инкапсуляции:
Инкапсуляция защищает целостность внутренних данных;
Инкапсуляция облегчает рефакторинг объектов;
Ослабить связь между модулями и улучшить возможности повторного использования объектов;
Помогает избежать конфликтов пространства имен;
См. Следующий пример:
<script type = "text/javascript"> var boy = {}; // Создать пустой объект Boy.name = "xiao ming"; // назначить Boy.age = 12 в соответствии с свойствами объекта прототипа, var Girl = {}; Girl.name = "xiaohong"; Girl.age = 10; </script>Это самая простая инкапсуляция, инкапсулирующая два атрибута в одном объекте. Однако этот метод письма имеет два недостатка. Во -первых, если вы генерируете больше случаев, писать очень трудно; Другое заключается в том, что нет никакого способа определить, есть ли какая -либо связь между экземпляром и прототипом.
Режим конструктора
Чтобы решить проблему генерации экземпляров из объектов прототипа, JavaScript предоставляет шаблон конструктора.
Так называемый «конструктор» на самом деле является обычной функцией, но эта переменная используется внутри. Использование нового оператора для конструктора может генерировать экземпляр, и эта переменная будет связана с объектом экземпляра.
Например, прототип объектов мальчика и девочки может быть написана так сейчас:
<script type = "text/javascript"> function person (name, age) {this.name = name; this.age = возраст; } </script>Теперь мы можем генерировать объекты экземпляра.
<script type = "text/javascript"> var boy = new Person ("xiao ming", 12); var Girl = новый человек ("Xiao Hong", 10); оповещение (boy.name); // xiao ming alert (boy.age); // 12 </script>В настоящее время мальчик и девочка будут автоматически содержать атрибут конструктора, указывающий на их конструктор.
предупреждение (Boy.constructor == Person); //истинный
Блюдо (Girl.constructor); // Вывод всей строки кода конструктора, попробуйте самостоятельно
Прототип шаблона JavaScript предусматривает, что каждый конструктор имеет атрибут прототипа, указывающий на другой объект. Все свойства и методы этого объекта будут унаследованы случаями конструктора.
Это означает, что мы можем напрямую определить эти неизменные свойства и методы на объекте прототипа.
<script type = "text/javascript"> function person (name, age) {this.name = name; this.age = age;} person.protype.type = "human"; person.protype.eat = function () {alert ("eat rice");} </script>Затем генерируйте экземпляр:
<script type = "text/javascript"> var boy = new Person ("xiao ming", "12"); var Girl = новый человек ("xiao hong", "10"); alert (boy.type); // Человеческий мальчик.eat (); // Eat </script>В настоящее время типовые атрибуты и методы eat () всех экземпляров на самом деле являются одним и тем же адресом памяти, указывая на объект прототипа, тем самым повышая эффективность работы.
оповещение (BOY.EAT == Girl.eat); //истинный
Свойство прототипа-это встроенное свойство, которое указывает функцию конструктора, которую расширяет объект.
Следующий код добавляет новый размер атрибута к функции конструктора животного, которая является атрибутом прототипа объекта CAT. Используя свойства прототипа, все объекты, расширяющие функции конструктора животных, могут получить доступ к свойству размера
Cat = New Animal ("Feline", "Meow", "Walk/Run"); Cat.prototype.size = "fat";В этом случае размер атрибута всех объектов животных - «толстый». Прототип по умолчанию в новый экземпляр объекта. Поскольку это все еще объект, новые атрибуты могут быть добавлены в объект. Так же, как стиль является объектом в JavaScript, вы также можете продолжать добавлять свойства после стиля.
<script type = "text/javascript">/*определить класс человека*/function person (_name, _age, _salary) {// публичный атрибут класса человека, публичный атрибут класса определяется как: "this.property name" this.name = _name; // Приватный атрибут класса человека, личный атрибут класса определяется как: "var name" var age = _age; var заработная плата = _salary; // Определите публичный метод (привилегированный метод) класса человека, публичный метод класса определяется как: «this.functionName = function () {.....}" this.show = function () {alert ("age ="+age+"/t"+"Заработная плата ="+зарплата); // Доступ к частным свойствам класса в общедоступном методе допускается} </// script> script>;Когда объект ищет определенное свойство, он сначала пройдет свои собственные свойства. Если нет, это будет продолжать искать объект, на который ссылается [[[Прототип]]. Если нет, то он будет продолжать искать объект, на который ссылается [[прототип]].
Проще говоря, это сохранение ссылки на другой объект через объект [[[прототип]] и поиск атрибутов через эту ссылку. Это прототипная цепочка.
нулевой объект
Функция JS, назначающих нулевые значения переменным:
Назначение нулевого указателя позволяет понять, что эта переменная готова хранить объекты. Также удобно отрегулировать неправильный
Глобальный окно -объект
Любая глобальная функция или переменная в JavaScript - это свойство окна.
Самостоятельный объект точно такой же, как у окна объекта. Я обычно используется, чтобы подтвердить, что это в текущей форме.
Основные основные объекты окна следующие:
JavaScript Document объект
JavaScript рамы объекта
JavaScript History объект
JavaScript Location объект
JavaScript Navigator объект
JavaScript Screen объект
Несколько общих методов
Метод значения (): возвращает исходное значение указанного объекта
Метод Split () разбивает строку в строковую массив и возвращает этот массив.
Метод Indexof () возвращает первое появление указанного строкового значения в строке.
Метод substring () используется для извлечения символов в строке между двумя указанными подписками.
Метод substr () извлекает указанное количество строк, начиная с положения Startpos из строки.
Метод join () используется для помещения всех элементов в массив в строку.
arrayobject.join (разделитель)
Метод обратного () используется для отмены порядка элементов в массиве.
Метод slice () возвращает выбранный элемент из существующего массива.
Объект буквального
Литералы объектов - это процессы, используемые для создания большого количества свойств, следующим образом:
<script type = "text/javascript"> var company = {name: "microsoft", возраст: 39, сотрудники: 99000, генеральный директор: "nadella"}; </script>Здесь следует отметить, что атрибуты и значения атрибутов разделены колонами (); Несколько атрибутов разделены запятыми (,). Литеральный объект также может определить методы. Просто напишите функцию на атрибутах этого объекта. Это анонимная функция. Вам нужно только написать его имя метода (), чтобы назвать его.
<script type = "text/javascript"> var dog = {name: "husky", age: 2, run: function () {return "123";}} alert (dog.run ()); // Если вы введите Dog.run, код для части функции, стоящей за ней, появится </script>Базовая обертка типа значения
В JS есть пять основных типов значений: число, строка, логическое, нулевое и неопределенное. За исключением нулевых и неопределенных, другие три имеют так называемые основные объекты обертывания. Встроенный номер конструктора (), String () и Boolean () может использоваться для создания объектов обертки.
var num = новое число (10); console.log (typeof num); // object object () method object () // вернуть пустой объект объекта (не определенная) // возвращать пустой объект объекта (null) // Возвращение пустого объекта объекта (1) // эквивалент новому номеру (1) объект ('foo') объект (true) // equivalty to new String ('foooo') Object (trouy ') Equivent of new to new String') obj Boolean (true) object ([]) // возвращает исходный объект массива ({}) // Возвращение исходного объекта объекта (function () {}) // Возвращение исходной функцииМассив части
1. Организатор объекта
Объект массива: обеспечивает поддержку для создания массивов любого типа данных.
arrayObj = new Array ()
arrayObj = новый массив ([размер])
arrayObj = new Array ([element0 [, element1 [, ... [, elementn]]]])))
Определение: var arr = [2,3,45,6]; var arr = новый массив (2,4,5,7)
Между ними нет различий в определении, [] имеет высокую производительность, потому что код короткий.
Используйте массив и объектные литералы: var atest = []; При создании массивов использование литералов массива является хорошим выбором; Точно так же объектные литералы также могут использоваться для сохранения места. Следующие две строки равны, но используйте объектные литералы, чтобы быть короче:
var Otest = новый объект; // Попробуйте не использовать var Otest = {}; // лучший выбор, или var 0test = [];Траверная, чтобы достичь наилучших результатов, проведенных массивами, рекомендуется использовать классику для петли.
var list = [1, 2, 3, 4, 5, ...... 10000000000]; for (var i = 0, l = list.length; i <l; i ++) {console.log (list [i]);}Приведенный выше код имеет обработку, которая должна кэшировать длину массива через l = list.length.
Массив конструктор
Поскольку конструктор Array немного неоднозначен, когда речь заходит о том, как справиться с аргументами, всегда рекомендуется использовать буквальный синтаксис массивов - [] - для создания массивов.
Следовательно, следующий код будет сбит с толку:
новый массив (3, 4, 5); // Результат: [3, 4, 5]
Новый массив (3) // Результат: [], длина этого массива составляет 3
Старайтесь избегать использования конструкторов массива для создания новых массивов. Рекомендуется использовать буквальный синтаксис массивов. Они короче и более лаконичны, тем самым увеличивая читаемость кода.
Свойства массива массива
Три свойства массива массива: атрибут длины, атрибут прототипа, атрибут конструктора
1. Атрибут длины
Атрибут длины представляет длину массива, то есть количество элементов в нем. Поскольку индекс массива всегда начинается с 0, верхние и нижние пределы массива: 0 и длина 1 соответственно. В отличие от большинства других языков, свойство длина JavaScript Mathrous является изменчивым, что требует особого внимания.
2. Атрибут прототипа
Возвращает ссылку на прототип типа объекта. Атрибут прототипа является общим для объекта.
Для объектов массива массивы используйте следующий пример, чтобы проиллюстрировать цель атрибута прототипа.
Добавьте метод в объект массива, чтобы вернуть максимальное значение элемента в массиве. Для этого объявите функцию, добавьте ее в Array.prototype и используйте ее.
функция array_max () {var i, max = this [0]; for (i = 1; i <this.length; i ++) {if (max <this [i]) max = this [i]; } return max; } Array.prototype.max = array_max; var x = новый массив (1,2,3,4,5,6); var y = x.max ();После того, как этот код будет выполнен, Y сохраняет максимальное значение в массиве x, или 6.
3. Атрибут конструктора
Функция, которая представляет создание объекта. Описание: Атрибут конструктора является членом всех объектов с прототипом. Они включают все нативные объекты JScript, кроме глобальных и математических объектов. Свойство конструктора содержит ссылку на функцию, которая строит конкретный экземпляр объекта.
Например:
x = new String ("hi"); if (x.constructor == string) // process (условие верно). // или функция myfunc {// func. } y = новый myfunc;if (y.constructor == myfunc) // Процесс (условие верно).
Для массивов:
y = new Array ();
Метод объекта массива
Сорт () Метод
грамматика
arrayobject.sort (sortby)
Сортб. Необязательно. Укажите порядок сортировки. Должен быть функция.
var arr = [11,2,28,4,5,1];
console.log (arr.sort ()); // return [1, 11, 2, 28, 4, 5]
Почему 11 и 28 здесь не организованы по порядку? Это потому, что сортировка без параметров сортируется в порядке кодирования символов.
Итак, что, если мы хотим сортировать элементы массива от маленького до большого? Посмотрите на следующий код:
var arr = [11,2,28,4,5,1]; console.log (arr.sort (function (a, b) {return ab; // return [1, 2, 4, 5, 11, 28]}));Если вы хотите сортировать по другим критериям, вам необходимо предоставить функцию сравнения, которая сравнивает два значения, а затем возвращает число, которое иллюстрирует относительный порядок двух значений. Функция сравнения должна иметь два параметра A и B, а ее возвратное значение следующим образом:
Если A меньше, чем B, A должен появиться до B в отсортированном массиве, то возвращается значение меньше 0.
Если A равно B, верните 0.
Если A больше B, возвращается значение, превышающее 0.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.