JavaScript объекта часть
1: Основная часть
1. Все переменные в JavaScript являются объектами, за двумя исключениями, нулевыми и неопределенными.
2.jscript поддерживает четыре типа объектов: внутренние объекты, сгенерированные объекты, объекты, основанные на хосте (все объекты Bom и DOM являются объектами хоста.) И Activex объектами (внешние компоненты).
3. Microsoft JScript предоставляет 11 внутренних (или «встроенных») объектов. Они представляют собой массив, логический, дата, функция, глобальная, математика, номер, объект, regexp, ошибка и строковые объекты.
4. Объекты - это просто специальные данные. Объекты имеют свойства и методы. Javascript-это объектно-ориентированный язык, но JavaScript не использует классы. JavaScript основан на прототипе, а не на классе.
5. Атрибут: является переменной, связанной с конкретным объектом. Метод: это функция, которую можно вызвать только определенным объектом.
6. Объекты JScript являются коллекциями свойств и методов. Метод - это функция, которая является членом объекта. Атрибут - это значение или набор значений (в форме массива или объекта), который является членом объекта.
7. Объекты Javascript основаны на функциях конструктора. При использовании функций конструктора для создания нового объекта можно сказать, что новый объект создается. Свойства представляют собой переменные внутри функции конструктора.
Объекты создаются с использованием функций конструктора:
Cat = New Animal ();
8. Javascript-это объект, и почти все, с чем вы сталкиваетесь, является объектом. Однако это не истинный объектно-ориентированный язык программирования (ООП), потому что в его синтаксисе нет класса (класса).
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
// Object - это коллекция пар/значения
var browser = {// объект закрыт в кудрявые скобки
Название: "Firefox",
Ядро: "Гекко"
};
</script>
Кода -копия выглядит следующим образом:
// Доступ к свойствам объекта через Dot (.) Или «[]»
browser.name // "Firefox"
Браузер ["ядро"] // "Геккови"
Объекты (objct) представляют собой набор свойств, каждое свойство состоит из «пар и значения». JS также определяет специальный объект - массив, который является упорядоченным набором пронумерованных значений. JS также определяет функцию Special Object - функция - это объект с исполняемом кодом, связанным с ней. Он выполняет код, вызывая функцию и возвращает результат операции.
Уточнить концепцию:
"Object Optern = объектно-ориентированный" в JS 4. В JS нет класса (класса), но он принимает новое имя, называемое «объект прототипа», поэтому «class = prototype объект»
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">
Функциональный человек (имя, возраст) {
this.name = name;
this.age = возраст;
}
</script>
Теперь мы можем генерировать объекты экземпляра.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var Boy = новый человек ("Xiao Ming", "12");
var Girl = новый человек ("Xiaohong", "10");
оповещение (boy.name); // Сяо Мин
блюд (Boy.age); // 12
</script>
В настоящее время мальчик и девочка будут автоматически содержать атрибут конструктора, указывающий на их конструктор.
Кода -копия выглядит следующим образом:
предупреждение (Boy.constructor == Person); //истинный
предупреждение (Girl.constructor == человек); //истинный
Прототип шаблона JavaScript предусматривает, что каждый конструктор имеет атрибут прототипа, указывающий на другой объект. Все свойства и методы этого объекта будут унаследованы экземпляром конструктора.
Это означает, что мы можем напрямую определить эти неизменные свойства и методы на объекте прототипа.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
Функциональный человек (имя, возраст) {
this.name = name;
this.age = возраст;
}
Person.protype.type = "ЧЕЛОВЕК";
Person.protype.eat = function () {
бдительность («съесть рис»);
}
</script>
Затем генерируйте экземпляр:
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var Boy = новый человек ("Xiao Ming", "12");
var Girl = новый человек ("Xiaohong", "10");
Alert (Boy.Type); // ЧЕЛОВЕК
Boy.eat (); // есть
</script>
В настоящее время типовые атрибуты и методы eat () всех экземпляров на самом деле являются одним и тем же адресом памяти, указывая на объект прототипа, тем самым повышая эффективность работы.
оповещение (BOY.EAT == Girl.eat); //истинный
Свойство прототипа-это встроенное свойство, которое указывает функцию конструктора, которую расширяет объект.
Следующий код добавляет новый размер атрибута к функции конструктора животного, которая является атрибутом прототипа объекта CAT. Используя свойства прототипа, все объекты, которые расширяют функции конструктора животных, могут получить доступ к свойству размер
Cat = New Animal («Feline», «Meow», «Walk/Run»);
cat.prototype.size = "fat";
В этом случае размер атрибута всех объектов животных - «толстый». Прототип по умолчанию в новый экземпляр объекта. Поскольку это все еще объект, новые атрибуты могут быть добавлены в объект. Так же, как стиль является объектом в JavaScript, вы также можете продолжать добавлять свойства после стиля.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
/*Определите класс человека*/
Функция Person (_name, _age, _salary) {
// Общественные атрибуты класса человека, публичные атрибуты класса определены как: «Это. Имя атрибута»
this.name = _name;
// Частные атрибуты класса человека, личные атрибуты класса определены как: «Имя атрибута var»
var age = _age;
var заработная плата = _salary;
// Определите публичный метод (привилегированный метод) класса человека, определение публичного метода класса
Да: "this.functionName = function () {......}"
this.show = function () {
Alert ("age ="+age+"/t"+"Зарплата ="+зарплата); // Доступ к частным свойствам класса в публичном методе разрешено
}
</script>
Когда объект ищет определенное свойство, он сначала пройдет свои собственные свойства. Если нет, это будет продолжать искать объект, на который ссылается [[[Прототип]]. Если нет, то он будет продолжать искать объект, на который ссылается [[прототип]].
Проще говоря, это сохранение ссылки на другой объект через объект [[[прототип]] и поиск атрибутов через эту ссылку. Это прототипная цепочка.
Глобальный окно -объект
Любая глобальная функция или переменная в 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 = {
Имя: "Microsoft",
возраст: 39,
Сотрудники: 99000,
Генеральный директор: "Наделла"
};
</script>
Здесь следует отметить, что атрибуты и значения атрибутов разделены колонами (); Несколько атрибутов разделены запятыми (,). Литеральный объект также может определить методы. Просто напишите функцию на атрибутах этого объекта. Это анонимная функция. Вам нужно только написать его имя метода (), чтобы назвать его.
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
var dog = {
Имя: "Хаски",
Возраст: 2,
run: function () {
вернуть "123";
}
}
Alert (dog.run ()); // Если вы введете Dog.run, код функции части после того, как она появится
</script>
JavaScript Array Part
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];
для (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
Старайтесь избегать использования конструкторов массива для создания новых массивов. Рекомендуется использовать буквальный синтаксис массивов. Они короче и более лаконичны, тем самым увеличивая читаемость кода.
Свойства массива массива
3 Свойства массива массива: атрибут длины, атрибут прототипа, атрибут конструктора
1. Атрибут длины
Атрибут длины представляет длину массива, то есть количество элементов в нем. Поскольку индекс массива всегда начинается с 0, верхние и нижние пределы массива: 0 и длина 1 соответственно. В отличие от большинства других языков, свойство длина JavaScript Mathrous является изменчивым, что требует особого внимания.
2. Атрибут прототипа
Возвращает ссылку на прототип типа объекта. Атрибут прототипа является общим для объекта.
Для объектов массива массивы используйте следующий пример, чтобы проиллюстрировать цель атрибута прототипа.
Добавьте метод в объект массива, чтобы вернуть максимальное значение элемента в массиве. Чтобы сделать это, объявить функцию, добавить ее в Array.prototype и использовать ее.
Кода -копия выглядит следующим образом:
Функция array_max ()
{
var i, max = это [0];
для (i = 1; i <this.length; i ++)
{
if (max <это [i])
max = это [i];
}
вернуть Макс;
}
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 {
// Функциональное тело.
}
y = новый myfunc;
if (y.constructor == myfunc) // Процесс (условие верно).
Для массивов:
y = new Array ();
Метод массива:
Прикреплено множество карт ума: