Konstruktor Objek JavaScript
Contoh
function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; }
Biasa untuk menamai fungsi konstraktor dengan huruf besar di awal.
jenis objek (rancangan) (kelas)
contoh di bab sebelumnya mempunyai batasan. Mereka hanya dapat membuat objek tunggal.
Kadang-kadang kita perlu membuat banyak objek yang sama jenis "Rancangan”.
Cara untuk membuat jenis "objek" adalah dengan menggunakanfungsi konstraktor objek。
dalam contoh di atas,fungsi Person() adalah fungsi konstraktor objek.
dengan cara new kata kunci memanggil fungsi konstraktor dapat membuat objek yang bertipe yang sama:
var myFather = new Person("Bill", "Gates", 62, "blue"); var myMother = new Person("Steve", "Jobs", 56, "green");
this kata kunci
dalam JavaScript, disebut this
yang dimiliki adalah pemilik kode.
this
nilai, saat digunakan dalam objek, adalah objek itu sendiri.
dalam fungsi konstraktor,this
Tiada nilai. Ia adalah pengganti objek baru. Apabila objek baru dibuat, nilai this akan menjadi objek itu sendiri.
Perhatikan this
Ini bukan variabel. Ini adalah kata kunci. Anda tidak dapat mengubah nilai this.
Menambahkan atribut ke objek
Menambahkan atribut ke objek yang sudah ada sangat mudah:
Contoh
myFather.nationality = "English";
Atribut baru ditambahkan ke myFather. Bukan myMother, atau objek person lainnya.
Menambahkan method ke objek
Menambahkan method ke objek yang sudah ada sangat mudah:
Contoh
myFather.name = function () { return this.firstName + " " + this.lastName; };
Method baru ditambahkan ke myFather. Bukan myMother, atau objek person lainnya.
Menambahkan atribut ke konstraktor
Beberapa dengan menambahkan atribut ke objek yang sudah ada, Anda tidak dapat menambahkan atribut ke fungsi konstraktor objek:
Contoh
Person.nationality = "English";
Untuk menambahkan atribut baru ke konstraktor, Anda harus menambahkannya ke fungsi konstraktor:
Contoh
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
Dengan cara ini, properti objek dapat memiliki nilai default.
Menambahkan method ke konstraktor
Fungsi konstraktor Anda juga dapat mendefinikan method:
Contoh
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;}; }
Beberapa dengan menambahkan method ke objek yang sudah ada, Anda tidak dapat menambahkan method ke fungsi konstraktor objek.
Harus di dalam fungsi konstraktor untuk menambahkan method ke objek:
Contoh
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; }; }
fungsi changeName() mengisi nilai name ke properti lastName objek person.
Sekarang anda boleh cuba:
myMother.changeName("Jobs");
dengan myMother
gantikan this,JavaScript boleh tahu mana orang yang sedang diproses.
Constructor JavaScript bawaan
JavaScript menyediakan constructor untuk objek asal:
Contoh
var x1 = new Object(); // Objek Object baharu var x2 = new String(); // Objek String baharu var x3 = new Number(); // Objek Number baharu var x4 = new Boolean(); // Objek Boolean baharu var x5 = new Array(); // Objek Array baharu var x6 = new RegExp(); // Objek RegExp baharu var x7 = new Function(); // Objek Function baharu var x8 = new Date(); // Objek Date baharu
Math()
Objek bukan bagian daripada ini. Math adalah objek global.new
Kata kunci tidak boleh digunakan dalam Math.
Adakah anda tahu?
Sebagai yang dilihat di atas, JavaScript menyediakan objek versi data asal seperti string, nombor dan boolean. Tetapi tiada alasan untuk mencipta objek yang kompleks. Nilai asal lebih cepat!
Sila gunakan literal objek {}
gantikan new Object()
。
Sila gunakan literal string ""
gantikan new String()
。
Sila gunakan literal nombor untuk gantikan Number()
。
Sila gunakan literal boolean untuk gantikan new Boolean()
。
Sila gunakan literal array []
gantikan new Array()
。
Sila gunakan literal model untuk gantikan new RexExp()
。
Sila gunakan ekspresi fungsi () {}
gantikan new Function()
。
Contoh
var x1 = {}; // Objek baharu var x2 = ""; // String asal baharu var x3 = 0; // Nombor asal baharu var x4 = false; // 巴达逻辑值 baharu var x5 = []; // 新的数组对象 var x6 = /()/ // 新的正则表达式对象 var x7 = function(){}; // 新的函数对象
字符串对象
通常,字符串被创建为原始值:var firstName = "Bill"
但是也可以使用 new
关键词创建字符串对象:var firstName = new String("Bill")
请在 JS 字符串在这一章中学习为何不应该把字符串创建为对象。
数字对象
通常,数值被创建为原始值:var x = 456
但是也可以使用 new
关键词创建数字对象:var x = new Number(456)
请在 JS 数字在这一章中学习为何不应该把数值创建为对象。
布尔对象
通常,逻辑值被创建为原始值:var x = false
但是也可以使用 new
关键词创建逻辑对象:var x = new Boolean(false)
请在 JS 逻辑在这一章中学习为何不应该把逻辑值创建为对象。