JavaScript adalah bahasa yang dinamis, Anda dapat menambahkan atribut ke objek saat runtime, atau Anda dapat menghapus atribut ke objek.
Salinan kode adalah sebagai berikut:
<Html>
<head>
<type skrip = "Teks/JavaScript">
/*
// 01. Cara pertama untuk mendefinisikan objek
var objek = objek baru ();
waspada (objek.username);
//01.1 Tambahkan nama pengguna atribut
objek ["nama pengguna"] = "liujianglong";
//object.username="liUJl ";
waspada (objek.username);
//01.2 Hapus nama pengguna atribut
hapus objek.username; // atribut nama pengguna telah dihapus dari objek objek
waspada (objek.username);
*/
// 02. Cara kedua untuk mendefinisikan objek - cara paling umum untuk mendefinisikan objek dalam JavaScript
var objek = {name: "zhangsan", usia: 10, seks: "fale"};
peringatan (objek.name);
waspada (objek.age);
peringatan (objek.sex);
</script>
</head>
<body>
</body>
</html>
Nama Properti: Nama Metode juga OK. Karena fungsi itu sendiri adalah sebuah objek
JavaScript Array Sorting
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
var array = [1,3,25];
PERBICUPANI////////////////////////////////////////////
var compare = function (num1, num2) {
var temp1 = parseInt (num1);
var temp2 = parseInt (num2);
if (temp1 <temp2) {
kembali -1;
} lain jika (temp1 == temp2) {
kembali 0;
}kalau tidak{
kembali 1;
}
}
//array.sort(compare);//01. Nama fungsi adalah referensi objek
PERBICURAN ////////////////////////////////////////////
// 02. Fungsi anonim method////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
array.sort (fungsi c (num1, num2) {
var temp1 = parseInt (num1);
var temp2 = parseInt (num2);
if (temp1 <temp2) {
kembali -1;
} lain jika (temp1 == temp2) {
kembali 0;
}kalau tidak{
kembali 1;
}
});
PERBICUPANI////////////////////////////////////////////
peringatan (array);
</script>
</head>
<body>
</body>
</html>
Beberapa cara untuk mendefinisikan objek dalam JavaScript (JavaScript tidak memiliki konsep kelas, hanya objek)
Metode pertama: Perluas sifat dan metodenya berdasarkan objek yang ada
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
// 01. Perluas sifat dan metode berdasarkan objek yang ada
var objek = objek baru ();
object.username = "zhangsan";
objek.sayname = function (name) {
this.username = name;
waspada (this.username);
}
waspada (objek.username);
objek.sayname ("lisi");
waspada (objek.username);
</script>
Metode ini memiliki keterbatasan karena JavaScript tidak memiliki konsep kelas seperti Java. Jika Anda menulis kelas, maka baru bisa mendapatkan objek dengan properti dan metode ini.
Pada saat ini, jika Anda ingin memiliki Object2, Anda hanya dapat menulis salinan kode lain yang disebutkan di atas, yang tidak terlalu bagus.
Metode kedua: metode pabrik
Mirip dengan metode pabrik statis di Java.
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
// Metode pabrik objek
var createObject = function () {
var objek = objek baru ();
object.username = "zhangsan";
objek.password = "123";
object.get = function () {
alert (this.username+","+object.password);
}
objek pengembalian;
}
var obj1 = createObject ();
var obj2 = createObject ();
obj1.get ();
// Ubah kata sandi objek 2
obj2 ["kata sandi"] = "123456";
obj2.get ();
</script>
</head>
<body>
</body>
</html>
Ada kelemahan dalam membuat objek dalam metode di atas (setiap objek memiliki metode GET, yang membuang -buang memori), dan metode pabrik yang ditingkatkan (semua objek berbagi metode get):
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
// Dapatkan metode yang dibagikan oleh semua objek
var get = function () {
waspada (this.username+","+this.password);
}
// Metode pabrik objek
var createObject = function (nama pengguna, kata sandi) {
var objek = objek baru ();
Object.UserName = nama pengguna;
objek.password = kata sandi;
Object.get = get; // Catatan: Kurung metode tidak ditulis di sini
objek pengembalian;
}
// Buat objek melalui metode pabrik
var object1 = createObject ("zhangsan", "123");
var objek2 = createObject ("lisi", "345");
// Memanggil metode GET
Object1.get ();
object2.get ();
</script>
</head>
<body>
</body>
</html>
Metode ketiga: mendefinisikan objek dengan konstruktor
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
var get = function () {
waspada (this.username+","+this.password);
}
orang fungsi (nama pengguna, kata sandi) {
// Sebelum menjalankan baris kode pertama, mesin JS akan menghasilkan objek untuk kami
this.username = nama pengguna;
this.password = kata sandi;
this.get = get;
// Di sini, ada pernyataan pengembalian tersembunyi yang digunakan untuk mengembalikan objek yang dihasilkan sebelumnya [ini berbeda dari pola pabrik]
}
var orang = orang baru ("zhangsan", "123");
person.get ();
</script>
</head>
<body>
</body>
</html>
Metode keempat: Buat objek dalam metode prototipe
Prototipe adalah properti dalam objek objek, dan semua objek orang juga dapat memiliki prototipe properti.
Anda dapat menambahkan beberapa properti dan metode ke prototipe objek.
Kerugian hanya menggunakan prototipe untuk membuat objek: ① Tidak dapat melewati parameter, Anda hanya dapat mengubah nilai setelah objek dibuat
② Kesalahan program dapat terjadi
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
function person () {
}
Person.prototype.username = "zhangsan";
Orang.prototype.password = "123";
Person.prototype.getInfo = function () {
waspada (this.username+","+this.password);
}
var person1 = orang baru ();
var person2 = orang baru ();
person1.username = "lisi";
person1.getInfo ();
person2.getInfo ();
</script>
</head>
<body>
</body>
</html>
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
function person () {
}
Orang.prototype.username = array baru ();
Orang.prototype.password = "123";
Person.prototype.getInfo = function () {
waspada (this.username+","+this.password);
}
var person1 = orang baru ();
var person2 = orang baru ();
person1.username.push ("wanglaowu");
person1.username.push ("wanglaowu2");
person2.password = "456";
person1.getInfo ();
person2.getInfo ();
</script>
</head>
<body>
</body>
</html>
Dengan hanya mendefinisikan objek menggunakan prototipe, Anda tidak dapat lagi menetapkan nilai awal ke atribut dalam konstruktor, dan Anda hanya dapat mengubah nilai atribut setelah objek dihasilkan.
Metode kelima: Gunakan prototipe + konstruktor untuk menentukan objek -----------------
Properti antara objek tidak saling mengganggu
Bagikan metode yang sama di antara objek
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
// Gunakan metode prototipe + konstruktor untuk menentukan objek
function person () {
// Definisi atribut dalam konstruktor
this.username = array baru ();
this.password = "123";
}
// Metode ini didefinisikan dalam prototipe
Person.prototype.getInfo = function () {
waspada (this.username+","+this.password);
}
var p1 = orang baru ();
var p2 = orang baru ();
p1.username.push ("Zhangsan");
p2.username.push ("lisi");
p1.getInfo ();
p2.getInfo ();
</script>
</head>
<body>
</body>
</html>
Metode Keenam: Metode Prototipe Dinamis -------- Penggunaan yang Disarankan
Dalam konstruktor, semua objek berbagi metode melalui kuantitas bendera, dan setiap objek memiliki atributnya sendiri.
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head>
<type skrip = "Teks/JavaScript">
var person = fungsi (nama pengguna, kata sandi) {
this.username = nama pengguna;
this.password = kata sandi;
if (typeof person.flag == "tidak terdefinisi") {
alert ("dipanggil");
Person.prototype.getInfo = function () {
waspada (this.username+","+this.password);
}
Orang.flag = true;
}
}
var p1 = orang baru ("zhangsan", "123");
var p2 = orang baru ("lisi", "456");
p1.getInfo ();
p2.getInfo ();
</script>
</head>
<body>
</body>
</html>