Konstruktor obiektu w JavaScript
- Poprzednia strona Dostęp do obiektów JS
- Następna strona Prototypy obiektów JS
przykład
Kursy rekomendowane: this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; }
jest dobrym zwyczajem nazywania funkcji konstruktora z dużą literą.
typu obiektu (plan) (klasa)
w poprzednim rozdziale jest ograniczony. Mogą one tworzyć tylko pojedynczy obiekt.
przedziałuCzasami musimy utworzyć wiele obiektów tego samego "planu
”.metoda tworzenia "typu obiektu" jest użyciem。
funkcja konstruktora obiektuW powyższym przykładzie, function Person(first, last, age, eye) {
to jest funkcja konstruktora obiektu. new poprzez
kluczowe słowo wywołuje funkcję konstruktora, co pozwala utworzyć obiekt tego samego typu: var myFather = new Person("Bill", "Gates", 62, "blue");
this var myMother = new Person("Steve", "Jobs", 56, "green");
kluczowym słowem this
w JavaScript jest nazywane
this
jest wartością obiektu, gdy jest używana w obiekcie.
W konstruktorze funkcji,this
Brak wartości. Jest to zamiennik nowego obiektu. Kiedy nowy obiekt jest tworzony, wartość this staje się tym nowym obiektem.
Prosze uwazac this
To nie jest zmienna. To słowo kluczowe. Nie możesz zmienić wartości this.
Dodawanie właściwości do obiektu
Dodawanie nowych właściwości do już istniejącego obiektu jest proste:
przykład
myFather.nationality = "English";
Nowa właściwość została dodana do myFather. Nie do myMother ani do żadnego innego obiektu person.
Dodawanie metod do obiektu
Dodawanie nowych metod do już istniejącego obiektu jest proste:
przykład
myFather.name = function () { return this.firstName + " " + this.lastName; };
Nowa metoda została dodana do myFather. Nie do myMother ani do żadnego innego obiektu person.
Dodawanie właściwości do konstruktora
W przeciwieństwie do dodawania nowych właściwości do już istniejącego obiektu, nie możesz dodać nowych właściwości do konstruktora obiektu:
przykład
Person.nationality = "English";
Aby dodać nową właściwość do konstruktora, musisz dodać ją do funkcji konstruktora:
przykład
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
W ten sposób atrybuty obiektu mogą mieć wartości domyślne.
Dodawanie metod do konstruktora
Twoja funkcja konstruktora może również definiować metody:
przykład
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.name = function() {return this.firstName + " " + this.lastName;}; }
W przeciwieństwie do dodawania nowych metod do już istniejącego obiektu, nie możesz dodać nowych metod do konstruktora obiektu.
Musisz dodać metodę do obiektu wewnątrz funkcji konstruktora:
przykład
function Person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; this.changeName = function (name) { this.lastName = name; }; }
Funkcja changeName() przypisuje wartość name do atrybutu lastName obiektu person.
Teraz możesz spróbować:
myMother.changeName("Jobs");
poprzez myMother
zastąpić this,JavaScript może zidentyfikować, który person jest obecnie przetwarzany.
wbudowane konstruktory JavaScript
JavaScript dostarcza konstruktory używane do tworzenia obiektów oryginalnych:
przykład
var x1 = new Object(); // Nowy obiekt Object var x2 = new String(); // Nowy obiekt String var x3 = new Number(); // Nowy obiekt Number var x4 = new Boolean(); // Nowy obiekt Boolean var x5 = new Array(); // Nowy obiekt Array var x6 = new RegExp(); // Nowy obiekt RegExp var x7 = new Function(); // Nowy obiekt Function var x8 = new Date(); // Nowy obiekt Date
Math()
Obiekty nie są w tej liście. Math jest obiektem globalnym.new
Słowa kluczowe nie mogą być używane w Math.
Czy wiesz?
Jak widać powyżej, JavaScript dostarcza obiektów wersji typów danych oryginalnych, takich jak ciąg znaków, liczba i logiczna. Ale nie ma powodu tworzyć złożonych obiektów. Wartości oryginalne są znacznie szybsze!
Proszę użyć wyrażenia obiektu {}
zastąpić new Object()
。
Proszę użyć wyrażenia ciągu znaków ""
zastąpić new String()
。
Proszę użyć wyrażenia liczbowego zamiast Number()
。
Proszę użyć wyrażenia logicznego zamiast new Boolean()
。
Proszę użyć wyrażenia tablicy []
zastąpić new Array()
。
Proszę użyć wyrażenia wzorca zamiast new RegExp()
。
Proszę użyć wyrażenia funkcji () {}
zastąpić new Function()
。
przykład
var x1 = {}; // Nowy obiekt var x2 = ""; // Nowy oryginalny ciąg znaków var x3 = 0; // Nowy oryginalny liczbowy wartość var x4 = false; // Nowy oryginalny logiczny wartość var x5 = []; // Nowy obiekt tablicy var x6 = /()/ // Nowy obiekt wyrażenia regularnego var x7 = function(){}; // Nowy obiekt funkcji
Obiekt ciągów znaków
Zwykle ciągi znaków są tworzone jako wartości pierwotne: var firstName = "Bill"
Ale można również użyć new
Kluczowe słowo tworzenia obiektu ciągów znaków: var firstName = new String("Bill")
Proszę, w Ciągi znaków JSW tym rozdziale dowiesz się, dlaczego nie powinieneś tworzyć ciągów znaków jako obiektów.
Obiekt liczbowy
Zwykle wartości liczbowe są tworzone jako wartości pierwotne: var x = 456
Ale można również użyć new
Kluczowe słowo tworzenia liczbowego obiektu: var x = new Number(456)
Proszę, w Liczby JSW tym rozdziale dowiesz się, dlaczego nie powinieneś tworzyć wartości liczbowych jako obiektów.
Obiekt logiczny
Zwykle wartości logiczne są tworzone jako wartości pierwotne: var x = false
Ale można również użyć new
Kluczowe słowo tworzenia logicznego obiektu: var x = new Boolean(false)
Proszę, w Logika JSW tym rozdziale dowiesz się, dlaczego nie powinieneś tworzyć wartości logicznych jako obiektów.
- Poprzednia strona Dostęp do obiektów JS
- Następna strona Prototypy obiektów JS