Rumah hujung hadapan web tutorial js Belajar berorientasikan objek javascript dan memahami kemahiran objects_javascript javascript

Belajar berorientasikan objek javascript dan memahami kemahiran objects_javascript javascript

May 16, 2016 pm 03:22 PM
javascript objek

1. Pemikiran Pengaturcaraan
Berorientasikan proses: Berpusat pada proses, diperhalusi secara beransur-ansur dari atas ke bawah, program ini dianggap sebagai koleksi panggilan fungsi
Berorientasikan objek: Objek berfungsi sebagai unit asas program dan atur cara diuraikan menjadi data dan operasi yang berkaitan
2. Kelas dan objek
Kelas: penerangan abstrak tentang perkara yang mempunyai ciri dan ciri yang sama
Objek: perkara khusus yang sepadan dengan jenis
tertentu 3. Tiga ciri utama berorientasikan objek
Enkapsulasi: Sembunyikan butiran pelaksanaan dan capai modularisasi kod
Warisan: melanjutkan modul kod sedia ada untuk mencapai penggunaan semula kod
Polimorfisme: kaedah pelaksanaan berbeza antara muka untuk mencapai penggunaan semula antara muka
4. Definisi objek: Himpunan atribut tidak tertib, yang atributnya boleh termasuk nilai asas, objek atau fungsi

//简单的对象实例
var person = new Object();
  person.name = "Nicholas";
  person.age = 29;
  person.job = "Software Engineer";
  person.sayName = function(){
    alert(this.name);
  }
Salin selepas log masuk

5. Jenis atribut dalaman: Atribut dalaman tidak boleh diakses secara langsung ECMAScript5 meletakkannya dalam dua kurungan segi empat sama dan membahagikannya kepada atribut data dan atribut aksesori
. [1] Atribut data mengandungi lokasi nilai data di mana nilai boleh dibaca dan ditulis. Atribut data mempunyai 4 ciri:
a. [[Boleh dikonfigurasikan]]: Menunjukkan sama ada atribut boleh ditakrifkan semula dengan memadamkan atribut melalui pemadaman, sama ada ciri-ciri atribut boleh diubah suai atau sama ada atribut boleh diubah suai sebagai atribut aksesori yang ditakrifkan secara langsung pada objek, nilai lalai adalah benar b. [[Enumerable]]: Menunjukkan sama ada atribut boleh dikembalikan melalui gelung untuk-dalam Untuk atribut yang ditakrifkan secara langsung pada objek, nilai lalai adalah benar
c, [[Boleh ditulis]]: Menunjukkan sama ada nilai atribut boleh diubah suai Untuk atribut yang ditakrifkan secara langsung pada objek, nilai lalai adalah benar
d. [[Nilai]]: Mengandungi nilai data atribut ini apabila membaca nilai atribut, baca dari lokasi ini apabila menulis nilai atribut, simpan nilai baharu di lokasi ini. Sifat ditakrifkan terus pada objek, nilai lalai tidak ditentukan

[2] Sifat accessor tidak mengandungi nilai data , tetapi mengandungi sepasang fungsi getter dan setter (tetapi kedua-dua fungsi ini tidak diperlukan). Apabila sifat pengakses dibaca, fungsi pengambil dipanggil, yang bertanggungjawab untuk mengembalikan nilai yang sah apabila harta pengakses ditulis, fungsi penetap dipanggil dan nilai baharu dimasukkan, dan fungsi ini bertanggungjawab untuk menentukan caranya; untuk mengendalikan fungsi. Sifat aksesori mempunyai 4 ciri berikut: a. [[Boleh dikonfigurasikan]]: Menunjukkan sama ada atribut boleh ditakrifkan semula dengan memadamkan atribut melalui pemadaman, sama ada ciri atribut boleh diubah suai, atau sama ada atribut boleh diubah suai menjadi atribut pengakses. Sifat ditakrifkan terus pada objek, nilai lalai adalah benar
b. [[Enumerable]]: Menunjukkan sama ada atribut boleh dikembalikan melalui gelung untuk masuk Atribut ditakrifkan secara langsung pada objek Nilai lalai adalah benar c, [[Dapatkan]]: Fungsi dipanggil semasa membaca atribut. Nilai lalai tidak ditentukan
d.[[Set]]: Fungsi dipanggil semasa menulis atribut. Nilai lalai tidak ditentukan

6. Ubah suai sifat dalaman:
Gunakan kaedah object.defineProperty() ECMAScript5, yang menerima tiga parameter: objek di mana harta itu terletak, nama sifat dan objek deskriptor
[Nota 1]IE8 ialah versi penyemak imbas pertama yang melaksanakan kaedah Object.defineProperty(). Walau bagaimanapun, versi pelaksanaan ini mempunyai banyak batasan: kaedah ini hanya boleh digunakan pada objek DOM dan hanya sifat pengakses boleh dibuat. Oleh kerana pelaksanaan yang tidak lengkap, tidak disyorkan untuk menggunakan kaedah Object.defineProperty() dalam IE8
[Nota 2]Pelayar yang tidak menyokong kaedah Object.defineProperty() tidak boleh mengubah suai [[Configurable]] dan [[Enumerable]] [1] Ubah suai atribut data

//直接在对象上定义的属性,Configurable、Enumerable、Writable为true
var person = {
  name:'cook'
};
Object.defineProperty(person,'name',{
  value: 'Nicholas'
});
alert(person.name);//'Nicholas'
person.name = 'Greg';
alert(person.name);//'Greg'  
Salin selepas log masuk
//不是在对象上定义的属性,Configurable、Enumerable、Writable为false
var person = {};
Object.defineProperty(person,'name',{
  value: 'Nicholas'
});
alert(person.name);//'Nicholas'
person.name = 'Greg';
alert(person.name);//'Nicholas'

Salin selepas log masuk
//该例子中设置writable为false,则属性值无法被修改
var person = {};
Object.defineProperty(person,'name',{
  writable: false,
  value: 'Nicholas'
});
alert(person.name);//'Nicholas'
person.name = 'Greg';
alert(person.name);//'Nicholas'  

Salin selepas log masuk
//该例子中设置configurable为false,则属性不可配置
var person = {};
Object.defineProperty(person,'name',{
  configurable: false,
  value: 'Nicholas'
});
alert(person.name);//'Nichols'
delete person.name;
alert(person.name);//'Nicholas'
Salin selepas log masuk
[Nota] Setelah sesuatu sifat ditakrifkan sebagai tidak boleh dikonfigurasikan, ia tidak boleh ditukar kembali kepada boleh dikonfigurasikan Ini bermakna anda boleh memanggil Object.defineProperty() beberapa kali untuk mengubah suai sifat yang sama, tetapi selepas menetapkan boleh dikonfigurasikan kepada false , terdapat. adalah sekatan


var person = {};
Object.defineProperty(person,'name',{
  configurable: false,
  value: 'Nicholas'
});
//会报错
Object.defineProperty(person,'name',{
  configurable: true,
  value: 'Nicholas'
});
Salin selepas log masuk
[2] Ubah suai sifat pelengkap


//简单的修改访问器属性的例子
var book = {
  _year: 2004,
  edition: 1
};
Object.defineProperty(book,'year',{
  get: function(){
    return this._year;
},
  set: function(newValue){
    if(newValue > 2004){
      this._year = newValue;
      this.edition += newValue - 2004;
    }
  }
});
book.year = 2005;
alert(book.year)//2005
alert(book.edition);//2
Salin selepas log masuk
[Nota 1] Hanya menentukan pengambil bermakna atribut tidak boleh ditulis


var book = {
  _year: 2004,
  edition: 1
};
Object.defineProperty(book,'year',{
  get: function(){
    return this._year;
  },
});
book.year = 2005;
alert(book.year)//2004  
Salin selepas log masuk
[Nota 2] Hanya menetapkan setter bermakna harta itu tidak boleh dibaca


var book = {
  _year: 2004,
  edition: 1
};
Object.defineProperty(book,'year',{
  set: function(newValue){
    if(newValue > 2004){
      this._year = newValue;
      this.edition += newValue - 2004;
    }
  }
});
book.year = 2005;
alert(book.year);//undefined
Salin selepas log masuk
[Tambahan] Gunakan dua kaedah bukan standard untuk mencipta sifat pengakses: __defineGetter__() dan __defineSetter__()


var book = {
  _year: 2004,
  edition: 1
};
//定义访问器的旧有方法
book.__defineGetter__('year',function(){
  return this._year;
});
book.__defineSetter__('year',function(newValue){
  if(newValue > 2004){
    this._year = newValue;
    this.edition += newValue - 2004;
  }
});
book.year = 2005;
alert(book.year);//2005
alert(book.edition);//2
Salin selepas log masuk
7. Tentukan berbilang sifat:

ECMAScript5 mentakrifkan kaedah Object.defineProperties(), yang boleh digunakan untuk mentakrifkan berbilang sifat sekaligus melalui deskriptor Kaedah ini menerima dua parameter objek: Pertama Objek pertama ialah objek yang sifatnya akan ditambah dan diubah suai Sifat objek kedua sepadan satu dengan satu dengan sifat objek pertama yang akan ditambah atau diubah suai

八、读取属性特性:使用ECMAScript5的Object.getOwnPropertyDescriptor()方法,可以取得给定属性的描述符。该方法接收两个参数:属性所在对象和要读取其描述符的属性名称,返回值是一个对象。
[注意]可以针对任何对象——包括DOM和BOM对象,使用Object.getOwnPropertyDescriptor()方法

var book = {};
Object.defineProperties(book,{
  _year: {
    value: 2004
  },
  edition: {
    value: 1
  },
  year: {
    get: function(){
      return this._year;
    },
    set: function(newValue){
      if(newValue > 2004){
        this._year = newValue;
        this.edition += newValue - 2004;
      }
    }
  } 
});
var descriptor = Object.getOwnPropertyDescriptor(book,'_year');
alert(descriptor.value);//2004
alert(descriptor.configurable);//false
alert(typeof descriptor.get);//'undefined'

var descriptor = Object.getOwnPropertyDescriptor(book,'year');
alert(descriptor.value);//'undefined'
alert(descriptor.configurable);//false
alert(typeof descriptor.get);//'function'
Salin selepas log masuk

以上就是关于javascript面向对象的详细内容介绍,希望对大家的学习有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Apakah objek Permintaan dalam PHP? Apakah objek Permintaan dalam PHP? Feb 27, 2024 pm 09:06 PM

Objek Permintaan dalam PHP ialah objek yang digunakan untuk mengendalikan permintaan HTTP yang dihantar oleh klien ke pelayan. Melalui objek Permintaan, kami boleh mendapatkan maklumat permintaan pelanggan, seperti kaedah permintaan, maklumat pengepala permintaan, parameter permintaan, dsb., untuk memproses dan membalas permintaan tersebut. Dalam PHP, anda boleh menggunakan pembolehubah global seperti $_REQUEST, $_GET, $_POST, dll. untuk mendapatkan maklumat yang diminta, tetapi pembolehubah ini bukan objek, tetapi tatasusunan. Untuk memproses maklumat permintaan dengan lebih fleksibel dan mudah, anda boleh

Bagaimana untuk menukar tatasusunan hasil pertanyaan MySQL kepada objek? Bagaimana untuk menukar tatasusunan hasil pertanyaan MySQL kepada objek? Apr 29, 2024 pm 01:09 PM

Begini cara untuk menukar tatasusunan hasil pertanyaan MySQL kepada objek: Cipta tatasusunan objek kosong. Gelung melalui tatasusunan yang terhasil dan buat objek baharu untuk setiap baris. Gunakan gelung foreach untuk menetapkan pasangan nilai kunci setiap baris kepada sifat yang sepadan bagi objek baharu. Menambah objek baharu pada tatasusunan objek. Tutup sambungan pangkalan data.

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Apakah perbezaan antara tatasusunan dan objek dalam PHP? Apakah perbezaan antara tatasusunan dan objek dalam PHP? Apr 29, 2024 pm 02:39 PM

Dalam PHP, tatasusunan ialah urutan tersusun, dan elemen diakses mengikut indeks; Akses tatasusunan adalah melalui indeks, akses objek adalah melalui sifat/kaedah. Nilai tatasusunan diluluskan dan rujukan objek diluluskan.

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

Apakah yang perlu saya perhatikan apabila fungsi C++ mengembalikan objek? Apakah yang perlu saya perhatikan apabila fungsi C++ mengembalikan objek? Apr 19, 2024 pm 12:15 PM

Dalam C++, terdapat tiga perkara yang perlu diperhatikan apabila fungsi mengembalikan objek: Kitaran hayat objek diuruskan oleh pemanggil untuk mengelakkan kebocoran memori. Elakkan penunjuk berjuntai dan pastikan objek kekal sah selepas fungsi kembali dengan memperuntukkan memori secara dinamik atau mengembalikan objek itu sendiri. Pengkompil boleh mengoptimumkan pembuatan salinan objek yang dikembalikan untuk meningkatkan prestasi, tetapi jika objek itu diluluskan oleh semantik nilai, tiada pembuatan salinan diperlukan.

See all articles