Najnowsze tutoriale tworzenie stron internetowych
 

JavaScript Przedmioty


Przedmioty JavaScript

W JavaScript, obiekty są królem. Jeśli rozumiesz obiektów, rozumiesz JavaScript.

W JavaScript, prawie "wszystko" jest obiektem.

  • Booleans mogą być obiekty (lub prymitywne danych traktowanych jako obiekty)
  • Numbers mogą być obiekty (lub prymitywne danych traktowanych jako obiekty)
  • Strings mogą być obiekty (lub prymitywne danych traktowanych jako obiekty)
  • Dates są zawsze obiektów
  • Maths zawsze są obiekty
  • Regular wyrażenia są zawsze obiektów
  • Arrays są zawsze obiektów
  • Functions są zawsze obiektów
  • Objects są obiektami

W JavaScript, wszystkie wartości, z wyjątkiem wartości pierwotnych, są obiektami.

Pierwotne wartości to: łańcuchy ("John Doe") , cyfry (3.14), true, false, null , a undefined .


Obiekty są zmienne zawierające zmienne

Zmienne JavaScript mogą zawierać pojedyncze wartości:

Przykład

var person = "John Doe";
Spróbuj sam "

Obiekty są zbyt zmienne. Ale obiekty mogą zawierać wiele wartości.

Wartości są zapisywane jako par nazwa: wartość (nazwa i wartość oddzielone dwukropkiem).

Przykład

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Spróbuj sam "

Obiekt JavaScript jest zbiorem nazwanych wartości


Właściwości obiektu

Te wymienione wartości, w obiektach JavaScriptu, nazywane są właściwości.

Nieruchomość Wartość
firstName John
lastName Doe
age 50
eyeColor blue

Przedmioty pisane jako pary nazwa wartość są podobne do:

  • Tablice asocjacyjne w PHP
  • Słowniki w Pythonie
  • Hash stoły w C
  • mapy Hash w Javie
  • Mieszań w Ruby i Perl

Metody obiektowe

Metody są działania, które mogą być wykonywane na obiektach.

Właściwości obiektu mogą być zarówno wartości pierwotnych, innych obiektów i funkcji.

Metoda przedmiot jest własnością obiektu zawierającego definicję funkcji.

Nieruchomość Wartość
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

obiekty JavaScript są pojemniki do wymienionych wartości, zwanych właściwości i metod.

Dowiesz się więcej na temat metod w następnych rozdziałach.


Tworzenie obiektu JavaScript

Z JavaScript można definiować i tworzyć własne przedmioty.

Istnieją różne sposoby tworzenia nowych obiektów:

  • Definiowanie i utworzyć jeden obiekt, wykorzystując obiekt dosłowne.
  • Definiowanie i utworzyć jeden obiekt, z nowego słowa kluczowego.
  • Definiowanie konstruktora obiektu, a następnie utworzyć obiekty skonstruowanej typu.

W ECMAScript 5, obiekt może być również utworzony z funkcją Object.create() .


Korzystanie z literał obiektu

Jest to najprostszy sposób, aby utworzyć obiekt JavaScript.

Korzystanie obiekt dosłowne, wam obu zdefiniować i utworzyć obiekt w jednym sprawozdaniu.

Obiekt dosłowne to lista par nazwa: wartość (jak age:50 ) wewnątrz nawiasów klamrowych {} .

Poniższy przykład tworzy nowy obiekt JavaScript z czterech obiektów:

Przykład

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Spróbuj sam "

Spacje i znaki końca linii nie są ważne. Definicję obiektu może obejmować wiele linii:

Przykład

var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};
Spróbuj sam "

Korzystając z nowej JavaScript kluczowe

Poniższy przykład tworzy nowy obiekt JavaScript z czterech obiektów:

Przykład

var person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Spróbuj sam "

Te dwa przykłady wyżej robią dokładnie to samo. Nie ma potrzeby stosowania new Object() .
Dla uproszczenia, czytelność i szybkość wykonania, użyj pierwsza (obiekt dosłowne metoda).


Korzystanie z konstruktora obiektu

powyższe przykłady są ograniczone w wielu sytuacjach. Tworzą tylko jeden obiekt.

Niekiedy tutaj mają "typ obiektu", który może być używany do tworzenia wielu obiektów jednego typu.

Standardowym sposobem utworzenia "typ obiektu" jest użycie funkcji konstruktora obiektu:

Przykład

function person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Spróbuj sam "

Powyższa funkcja (osoba) jest konstruktorem obiektu.

Gdy masz konstruktora obiektu, można tworzyć nowe obiekty tego samego typu:

var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");

this słowo

W JavaScript, rzecz o nazwie this jest obiekt, który "posiada" kod JavaScript.

Wartość this , stosowana w funkcji, jest obiektem, który "posiada" funkcję.

Wartość this , stosowana w obiekcie jest sam obiekt.

this słowo kluczowe w konstruktorze obiektu nie posiada wartości. To jest tylko substytutem dla nowego obiektu.

Wartość this zostanie nowym obiektem, gdy konstruktor jest używany do utworzenia obiektu.

Należy zauważyć, że nie jest zmienna. Jest to kluczowe. Nie można zmienić wartość this .


Wbudowana Konstruktorów JavaScript

JavaScript ma wbudowane konstruktorów dla rodzimych obiektów:

Przykład

var x1 = new Object();    // A new Object object
var x2 = new String();    // A new String object
var x3 = new Number();    // A new Number object
var x4 = new Boolean()    // A new Boolean object
var x5 = new Array();     // A new Array object
var x6 = new RegExp();    // A new RegExp object
var x7 = new Function();  // A new Function object
var x8 = new Date();      // A new Date object
Spróbuj sam "

Math() obiekt nie znajduje się na liście. Math jest obiektem globalnym. Nowe słowo kluczowe nie może być stosowany na Math.

Czy wiedziałeś?

Jak widać, JavaScript ma sprzeciwu wersje prymitywnych typów danych String, numer i logicznych.

Nie ma powodu do tworzenia skomplikowanych obiektów. Wartości prymitywne wykonywać znacznie szybciej.

I nie ma powodu, aby korzystać z nowej Array() . Użyj literały tablic zamiast: []

I nie ma powodu, aby użyć nowego RegExp() . Za pomocą literałów zamiast wzoru: /()/

I nie ma powodu, aby korzystać z nowych Function() . Użyj wyrażeń funkcyjnych zamiast: function () {} .

I nie ma powodu, aby użyć new Object() . Za pomocą literałów obiektów w zamian: {}

Przykład

var x1 = {};            // new object
var x2 = "";            // new primitive string
var x3 = 0;             // new primitive number
var x4 = false;         // new primitive boolean
var x5 = [];            // new array object
var x6 = /()/           // new regexp object
var x7 = function(){};  // new function object
Spróbuj sam "

Przedmioty JavaScript są zmienne

Przedmioty są zmienne: Są one kierowane przez odniesienie, a nie wartości.

Jeśli y jest obiektem, następujące oświadczenie nie utworzy kopię y:

var x = y;  // This will not create a copy of y.

Przedmiotem x nie jest kopią y. Jest y. Oba punkty xiy do tego samego obiektu.

Wszelkie zmiany do Y spowoduje również zmianę X, bo X i Y są tego samego obiektu.

Przykład

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10;           // This will change both x.age and person.age
Spróbuj sam "