У самого основания есть процедурный код:
var a = 4
var b = 5;
print a + b;
… and so on, statements following statements…
Чтобы сделать такие куски кода многократно используемыми, вы делаете из них функцию:
function a_plus_b() {
var a = 4
var b = 5;
print a + b;
}
Теперь вы можете использовать этот фрагмент кода так часто, как захотите, но вам нужно было написать его только один раз.
Обычно приложение зависит от того, как части кода и переменные должны работать вместе. Эти данные должны быть обработаны этой функцией, но не могут быть обработаны этой другой функцией.
function foo(data) {
…do something…
return data;
}
function bar(data) {
…do something else…
return data;
}
a = "some data";
b = 123456;
a = foo(a);
b = bar(b);
c = bar(a); // ERROR, WRONG DATA FOR FUNCTION
Чтобы помочь сгруппировать эти связанные части, существуют классы.
class A {
var data = 'some data';
function foo() {
…do something…
return data;
}
}
Функция foo
теперь имеет переменную data
, которая «связана» с ней в том же классе. Он может работать с этой переменной, не беспокоясь о том, что это могут быть неправильные данные. Также нет никакого способа, которым data
может случайно оказаться в функции bar
, которая является частью другого класса.
Единственная проблема в том, что здесь есть только одна переменная data
. Эта функция может использоваться повторно, но она может работать только с одним набором данных. Чтобы решить эту проблему, вы создаете объекты (также называемые instance ) из класса:
instance1 = new A();
instance2 = new A();
instance1
и instance2
ведут себя точно так же, как class A
, они оба знают, как выполнять функцию foo
(теперь называется метод экземпляра ), и они оба содержат переменную data
(теперь называется переменная экземпляра или атрибут ), но эта переменная data
может содержать разные данные для обоих экземпляров.
Это основы классов и объектов. Как реализовано ваше конкретное диалоговое окно «ОК», «Отмена» - это отдельная история. Обе кнопки могут быть связаны с разными методами разных классов, или просто с разными методами одного и того же класса, или даже с одним и тем же методом одного и того же класса. Классы - это просто способ логически сгруппировать код и данные, как вы будете их использовать.