1. Использование основных классов
Метод 1:
Кода -копия выглядит следующим образом:
Функция STH (A) // Функция конструктора
{
this.a = a;
this.fun = output; // функция члена
}
Выход функции (A, B, C)
{
document.write (this.a);
}
//Вызов
var s = new STH (250);
S.Fun (1, 2, 3);
выход (1, 2, 3); // Если выход неверен перед STH
Метод 2:
Скопируйте код следующим образом: function sth (a)
{
this.a = a;
this.output = function ()
{
document.write (this.a);
}
}
var s = new STH (2);
S.Output (); // Вывод 2
2. Наследство
Метод 1:
Скопируйте код следующим образом: Функция A (x)
{
this.x = x;
}
Функция B (x, y)
{
// Метод 1
/*
this.construct = a;
this.construct (x);
Удалить это.construct;
*/
// Метод 2
//A.call( Это x);
// Метод 3
A.Apply (это, новый массив (x)); // это также может быть A.Apply (это, аргументы), но порядок параметров аргумента должен быть правильным
this.y = y;
this.print = function ()
{
document.write ("x =", x,
", y =", y);
}
}
var b = new B (1, 2);
b.print ();
оповещение (B -экземпляр A); // Вывод FALSE
Преимущества: может быть достигнуто множественное наследство (просто звоните по нескольким вызовам)
недостаток:
・ Должно использоваться в качестве конструктора
・ Используйте оператор экземпляра, чтобы управлять этим результатом наследования в False
Метод 2:
Скопируйте код следующим образом: Функция a ()
{
}
A.Prototype.x = 1;
Функция b ()
{
}
B.Prototype = новый a (); // не может принять параметры!
B.Prototype.y = 2;
B.prototype.print = function ()
{
document.write (this.x, ",", this.y, "<br>");
}
var b = new b ();
b.print ();
document.write (b -экземпляр a); // Вывод TRUE
недостаток:
・ Невозможно достичь множественного наследства
・ Конструктор не имеет параметров
Советы
Обычно используя гибридный режим, оба
Кода -копия выглядит следующим образом:
функция A (x)
{
this.x = x;
}
A.prototype.printx = function () // Записать это. Pprintx = function .... Также возможно, то же самое ниже
{
document.write (this.x, "<br>");
}
Функция B (x, y)
{
A.call (это, x);
this.y = y;
}
B.Prototype = новый a (); // не может принять параметры!
B.prototype.printxy = function ()
{
document.write (this.x, ",", this.y, "<br>");
}
var b = new B (1, 2);
b.printx (); // Вывод 1
b.printxy (); // Вывод 1, 2
document.write (b -экземпляр a); // Вывод TRUE
3. Использование функций статического элемента
Скопируйте код следующим образом: function sth (a)
{
this.a = a;
}
sth.fun = function (ы)
{
Document.Write (SA);
}
var s = new STH (2);
sth.fun (ы); // Вывод 2
IV Выпуск объектов
Скопируйте код следующим образом: var obj = новый объект; // OBJ - это ссылка
obj = null; // dereference будет автоматически сбором мусора; Если вам вообще нужно выпустить этот объект, все его ссылки должны быть назначены NULL
V. Функциональный объект
Скопируйте код следующим образом: var v = new Function ("arg1", "arg2", "document.write (arg1 + arg2);"); // Определить объект функции с параметрами ARG1 и ARG2 соответственно
V (1, 2); // будет выводить 3
6. Функция обратного вызова
Скопируйте код следующим образом: обратный вызов функции (func, arg)
{
func (arg);
}
функционировать веселье (arg)
{
document.write (arg);
}
// обратный вызов (func, "SB"); // Этот метод не работает
var func = новая функция ("arg", "fun (arg);");
// Конечно, func (arg) также может быть заменен конкретным кодом выполнения.
// но если код функции огромный, лучше сделать это
обратный вызов (Func, "SB");
7. Функция перегрузка
Скопируйте код следующим образом: Function Fun ()
{
Switch (Arguments.length)
{
Случай 1:
document.write (аргументы [0]);
перерыв;
Случай 2:
document.write (аргументы [0] + аргументы [1]);
перерыв;
по умолчанию:
document.write ("ошибка!");
перерыв;
}
}
веселье (1);
Веселье (1, 2);
8. Используйте закрытие функций для реализации функций с «статическими переменными»
Скопируйте код следующим образом: Function Fun ()
{
var v = 1;
Функция fun2 ()
{
++ V;
document.write (v);
document.write ("<br>");
возврат V;
}
вернуть Fun2;
}
var func = fun ();
func (); // Вывод 2
func (); // Вывод 3
func (); // Вывод 4