JavaScript - это динамический язык, вы можете добавить атрибуты к объектам во время выполнения или удалить атрибуты в объекты.
Кода -копия выглядит следующим образом:
<html>
<голова>
<script type = "text/javascript">
/*
// 01. Первый способ определить объект
var object = new Object ();
Alert (object.username);
//01.1 Добавить атрибут имя пользователя
Object ["имя пользователя"] = "liujianglong";
//object.username="liujl ";
Alert (object.username);
//01.2 Удалить имя пользователя атрибута
Удалить object.username; // атрибут имени пользователя был удален из объекта объекта
Alert (object.username);
*/
// 02. Второй способ определения объектов - наиболее распространенный способ определения объектов в JavaScript
var object = {name: "Zhangsan", возраст: 10, пол: "fale"};
Alert (object.name);
оповещение (object.age);
Alert (object.sex);
</script>
</head>
<тело>
</body>
</html>
Имя свойства: Имя метода также в порядке. Потому что сама функция является объектом
Сортировка массива JavaScript
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
var array = [1,3,25];
/////////////////////////////////
var compare = function (num1, num2) {
var temp1 = parseint (num1);
var temp2 = parseint (num2);
if (temp1 <temp2) {
возврат -1;
} else if (temp1 == temp2) {
возврат 0;
}еще{
возврат 1;
}
}
//Array.sort(compare) ;//01. Имя функции является ссылкой на объект
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 02. Анонимная функция method////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
array.sort (функция C (num1, num2) {
var temp1 = parseint (num1);
var temp2 = parseint (num2);
if (temp1 <temp2) {
возврат -1;
} else if (temp1 == temp2) {
возврат 0;
}еще{
возврат 1;
}
});
/////////////////////////////////
предупреждение (массив);
</script>
</head>
<тело>
</body>
</html>
Несколько способов определения объектов в JavaScript (JavaScript не имеет концепции классов, только объекты)
Первый метод: расширить его свойства и методы на основе существующих объектов
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
// 01. Расширить свои свойства и методы на основе существующих объектов
var object = new Object ();
Object.username = "Zhangsan";
object.sayname = function (name) {
this.username = name;
оповещение (this.username);
}
Alert (object.username);
object.sayname ("lisi");
Alert (object.username);
</script>
Этот метод имеет ограничения, потому что JavaScript не имеет концепции класса, как Java. Если вы пишете класс, то New может получить объект с этими свойствами и методами.
В настоящее время, если вы хотите иметь Object2, вы можете написать только другую копию кода, упомянутого выше, что не очень хорошо.
Второй метод: фабричный метод
Подобно статическим фабричным методам в Java.
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
// метод завода объекта
var createObject = function () {
var object = new Object ();
Object.username = "Zhangsan";
Object.Password = "123";
object.get = function () {
Alert (this.username+","+object.password);
}
вернуть объект;
}
var obj1 = createObject ();
var obj2 = createObject ();
obj1.get ();
// Измените пароль объекта 2
obj2 ["пароль"] = "123456";
obj2.get ();
</script>
</head>
<тело>
</body>
</html>
Существуют недостатки в создании объектов в приведенном выше методе (каждый объект имеет метод GET, который тратит память) и улучшенный метод завода (все объекты совместно используют метод получения):
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
// Получить метод, разделяемый всеми объектами
var get = function () {
Alert (this.username+","+this.password);
}
// метод завода объекта
var createObject = function (имя пользователя, пароль) {
var object = new Object ();
object.username = имя пользователя;
Object.Password = пароль;
object.get = get; // Примечание: кронштейны метода не записаны здесь
вернуть объект;
}
// Создать объект с помощью фабричного метода
var object1 = createObject ("Zhangsan", "123");
var object2 = createObject ("lisi", "345");
// Вызов метода получить
Object1.get ();
Object2.get ();
</script>
</head>
<тело>
</body>
</html>
Третий метод: определение объекта конструктором
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
var get = function () {
Alert (this.username+","+this.password);
}
Функция человека (имя пользователя, пароль) {
// перед выполнением первой строки кода, двигатель JS будет генерировать объект для нас
this.username = имя пользователя;
this.password = пароль;
this.get = get;
// Здесь есть скрытый оператор возврата, используемый для возврата ранее сгенерированного объекта [это отличается от заводской шаблона]
}
var Person = новый человек ("Zhangsan", "123");
Person.get ();
</script>
</head>
<тело>
</body>
</html>
Четвертый метод: создать объект в методе прототипа
Прототип является свойством в объекте объекта, и все объекты человека также могут иметь прототип свойств.
Вы можете добавить некоторые свойства и методы к прототипу объекта.
Недостатки простого использования прототипов для создания объектов: ① Невозможно пройти параметры, вы можете изменить значение только после создания объекта
② могут возникнуть ошибки программы
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
функция Person () {
}
Person.prototype.username = "Zhangsan";
Person.prototype.password = "123";
Person.prototype.getInfo = function () {
Alert (this.username+","+this.password);
}
var person1 = new Person ();
var person2 = new Person ();
Person1.username = "lisi";
Person1.getInfo ();
person2.getinfo ();
</script>
</head>
<тело>
</body>
</html>
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
функция Person () {
}
Person.prototype.username = new Array ();
Person.prototype.password = "123";
Person.prototype.getInfo = function () {
Alert (this.username+","+this.password);
}
var person1 = new Person ();
var person2 = new Person ();
person1.username.push ("wanglaowu");
person1.username.push ("wanglaowu2");
person2.password = "456";
Person1.getInfo ();
person2.getinfo ();
</script>
</head>
<тело>
</body>
</html>
Просто определяя объект с использованием прототипа, вы больше не можете назначать начальные значения атрибутам в конструкторе, и вы можете изменить значения атрибута только после того, как объект генерируется.
Пятый метод: используйте прототип + конструктор для определения объекта -----------------
Свойства между объектами не мешают друг другу
Поделиться тем же методом среди объектов
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
// Использование метода прототипа + конструктора для определения объекта
функция Person () {
// определение атрибута в конструкторе
this.username = new Array ();
this.password = "123";
}
// метод определяется в прототипе
Person.prototype.getInfo = function () {
Alert (this.username+","+this.password);
}
var p1 = новый человек ();
var p2 = новый человек ();
p1.username.push ("Zhangsan");
p2.username.push ("lisi");
p1.getinfo ();
p2.getinfo ();
</script>
</head>
<тело>
</body>
</html>
Шестой метод: метод динамического прототипа -------- Рекомендуемое использование
В конструкторе все объекты имеют метод через количество флага, и каждый объект имеет свои собственные атрибуты.
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<script type = "text/javascript">
var person = function (имя пользователя, пароль) {
this.username = имя пользователя;
this.password = пароль;
if (typeof person.flag == "не определено") {
оповещение («призван»);
Person.prototype.getInfo = function () {
Alert (this.username+","+this.password);
}
Person.flag = true;
}
}
var p1 = новый человек ("Zhangsan", "123");
var p2 = новый человек ("lisi", "456");
p1.getinfo ();
p2.getinfo ();
</script>
</head>
<тело>
</body>
</html>