Setiap objek fungsi memiliki atribut panjang, menunjukkan jumlah parameter yang diharapkan oleh fungsi untuk diterima.
Salinan kode adalah sebagai berikut:
<Html>
<head>
<type skrip = "Teks/JavaScript">
var add = function (num1, num2, num3) {
peringatan (num1+num2+num3);
}
peringatan (add.length);
</script>
</head>
<body>
</body>
</html>
Tentang penciptaan JS yang berorientasi objek,
Target:
Bangun objek pesanan.
Berisi tiga atribut: tanggal, jumlah, pengirim
Berisi metode: Tampilan String: "XX mengirimkan pesanan dengan kuota: xxxx yuan di xxx-xx-xx"
Satu metode pabrik
Salinan kode adalah sebagai berikut:
<type skrip = teks/javascript>
/*
Metode pabrik: Mengembalikan objek dengan menggunakan metode, tidak perlu menghasilkan objek baru melalui baru saat menggunakannya.
*/
Function createOrder () // Anda juga dapat membangun metode pabrik dengan parameter untuk menginisialisasi data objek berdasarkan parameter yang dilewati.
{
var order = objek baru ();
order.date = "1990-1-1";
order.price = "3200";
order.name = "Vince Keny";
contes.show = function () // Jika Anda menempatkan metode show di pabrik, Anda akan membuat metode show untuk setiap instance secara terpisah. Sumber daya buang adalah kerugian dari pola ini.
{
waspada (this.name + "in" + this.date + "memesan dengan kuota" + this.price + "rmb.")
}
pesanan kembali;
}
// Kembalikan objek menggunakan mode pabrik:
var order = createOrder ();
// Ini juga dapat digunakan dengan cara ini, mengubah pola pabrik menjadi "pseudo-konstruktor". Karena yang baru digunakan di pabrik, operator baru saat membuat objek akan diabaikan.
var order2 = new createOrder ();
order.show ();
order2.show ();
</script>
Dua metode konstruktor
Salinan kode adalah sebagai berikut:
/*
Metode konstruktor dan deklarasi metode sama dengan metode pabrik, dan ada masalah yang sama dan dapat diekstraksi. Perbedaannya adalah bahwa ini digunakan untuk mendeklarasikan atribut.
Dan Anda perlu menggunakan operator baru untuk menghasilkan contoh.
*/
function order ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
this.show = function ()
{
waspada (this.name + "in" + this.date + "memesan dengan kuota" + this.price + "rmb.")
}
}
var order = order baru ();
order.show ();
Tiga metode prototipe
Salinan kode adalah sebagai berikut:
/*
Metode Prototipe: Gunakan prototipe
*/
function order ()
{}
Order.prototype.date = "1990-1-1";
Order.prototype.price = "3200";
Order.prototype.name = "Vince Keny";
Order.prototype.show = function ()
{
waspada (this.name + "in" + this.date + "memesan dengan kuota" + this.price + "rmb.")
}
var order = order baru ();
order.show ();
Empat metode konstruktor/prototipe hibrida
Salinan kode adalah sebagai berikut:
/*
Metode Hibrid Constructor/Prototipe: Inisialisasi bidang atribut menggunakan metode konstruktor dan gunakan metode prototipe untuk membangun metode.
*/
function order ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
}
Order.prototype.show = function ().
{
waspada (this.name + "in" + this.date + "memesan dengan kuota" + this.price + "rmb.")
}
var order = order baru ();
order.show ();
Lima metode hibrida dinamis
Salinan kode adalah sebagai berikut:
/*
Metode pencampuran dinamis: Perbedaan antara metode pencampuran terletak pada posisi mendeklarasikan metode. Menempatkan kehidupan metode di dalam konstruktor lebih sesuai dengan berorientasi objek.
*/
function order ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
if (typeof order._initialized == "tidak ditentukan")
{
Order.prototype.show = function ().
{
waspada (this.name + "in" + this.date + "memesan dengan kuota" + this.price + "rmb.")
};
Order._initialized = true;
}
}
Function Car (Scolor, Idoors) {
var otempcar = objek baru;
otempcar.color = scolor;
otempcar.doors = idooes;
otempcar.showcolor = function () {
waspada (this.color)
};
mengembalikan otempcar;
}
var ocar1 = mobil baru ("merah", 4);
var ocar2 = mobil baru ("biru", 3);
ocar1.showcolor (); // output "merah"
ocar2.showcolor (); // output "biru"