Rumah hujung hadapan web tutorial js Pemahaman awal tentang kemahiran javascript object-oriented_javascript

Pemahaman awal tentang kemahiran javascript object-oriented_javascript

May 16, 2016 pm 03:33 PM
js berorientasikan objek

Kata Pengantar

Objek berasaskan kelas: Kita semua tahu bahawa tanda yang jelas dalam bahasa berorientasikan objek ialah konsep kelas Melalui kelas, yang serupa dengan templat, kita boleh mencipta banyak objek dengan sifat dan kaedah yang sama. Walau bagaimanapun, tiada konsep kelas dalam ECMAScript, jadi secara semula jadi ia akan berbeza daripada objek dalam bahasa berasaskan kelas.

Objek dalam js: Koleksi atribut yang tidak tertib, yang boleh termasuk nilai asas, objek dan fungsi. Iaitu, objek dalam js ialah satu set nilai tanpa susunan tertentu Setiap sifat atau kaedah objek mempunyai nama sendiri, dan setiap nama sepadan dengan nilai.

Memahami objek

Cara mencipta objek

1 Cara paling mudah untuk mencipta objek ialah mencipta tika Object dan kemudian menambah sifat dan kaedah padanya.

Contohnya

  var person = new Object();
    person.name='谦龙';
    person.sex='男';
    person.sayNameAndSex=function(){
      console.log(this.name,this.sex)
    }
    person.sayNameAndSex(); // 谦龙 男
Salin selepas log masuk

2 Gunakan bentuk literal objek

Contohnya

  var person={
    name:'谦龙',
    sex:'男',
    sayNameAndSex:function(){
      console.log(this.name,this.sex)
    }
  }
   person.sayNameAndSex(); // 谦龙 男
Salin selepas log masuk

Jenis atribut

ECMAScript mempunyai dua jenis atribut data: atribut data dan atribut pengakses.

Atribut data

Atribut data mengandungi lokasi nilai data. Nilai boleh dibaca dan ditulis di lokasi ini. Terdapat empat sifat yang menggambarkan tingkah lakunya.

1.[[Boleh Dikonfigurasikan]]: Menunjukkan sama ada atribut boleh ditakrifkan semula dengan memadamkannya melalui pemadaman...Nilai lalai adalah benar

2.[[Enumerable]]: Menunjukkan sama ada atribut boleh dikembalikan melalui untuk dalam gelung...Lalai adalah benar

3.[[Boleh ditulis]]: Menunjukkan sama ada nilai atribut boleh diubah suai...Lalai adalah benar

4.[[Nilai]]: Menunjukkan nilai atribut ini lalai tidak ditentukan

Untuk mengubah suai sifat lalai harta, anda mesti menggunakan kaedah ES5 Object.defineProperty(), yang menerima tiga parameter: objek di mana harta itu terletak, nama harta dan objek yang menerangkan sifat sifat (boleh dikonfigurasikan, boleh dikira , boleh ditulis, nilai), menetapkan satu atau lebih daripadanya boleh mengubah suai ciri yang sepadan

DEMO

var person={};
Object.defineProperty(person,'name',{
 configurable:false,//表示不允许通过delete删除属性
 writable:false,//表示不允许重写
 ennumerable:false,//表示不允许通过for in遍历
 value:'谦龙'//设置该对象中属性的值
})
person.name='谦龙2';//尝试重新设置 结果不生效
delete person.name;//尝试删除 结果不生效
for(var attr in person){
 console.log(person[attr]);// false
}
console.log(person.name);//谦龙
Salin selepas log masuk

Nota: Selepas menetapkan boleh dikonfigurasikan kepada palsu, ia tidak dibenarkan ditukar kepada benar lagi Selain itu, apabila memanggil kaedah Object.defineProperty(), nilai lalai bagi boleh dikonfigurasikan, boleh dikira dan boleh ditulis adalah palsu.

Sifat aksesori

Sifat aksesori tidak mengandungi nilai data ia mengandungi sepasang fungsi pengambil dan penetap (tetapi kedua-dua fungsi ini tidak diperlukan apabila membaca sifat akses, fungsi pengambil akan dipanggil sah Apabila menulis sifat pengakses, fungsi penetap dipanggil dan nilai baharu dihantar masuk. Fungsi ini bertanggungjawab untuk cara memproses data.

Sifat aksesori mempunyai ciri-ciri berikut

[[boleh dikonfigurasikan]] menunjukkan sama ada atribut boleh dipadamkan melalui pemadaman untuk menentukan atribut baharu

[[enumerable]] menunjukkan sama ada atribut yang dikembalikan boleh dilalui melalui gelung untuk dalam

[[dapat]] Fungsi dipanggil semasa membaca sifat, lalai tidak ditentukan

[[set]] Fungsi yang dipanggil semasa menulis fungsi Nilai lalai tidak ditentukan

Nota: Sifat pengakses tidak boleh ditakrifkan secara langsung dan mesti ditakrifkan melalui Object.defineProterty()

DEMO

 var book={
 _year:2015, //这里的下划线是常见的记号,表示只能通过对象的方法才能访问的属性
 edition:1
}
Object.defineProperty(book,'year',{
 get:function(){
  return this._year; //即默认通过 book.year获取值的时候 返回的是 boot._year的值
 },
 set: function (value) {//在对 boot.year设置值的时候 默认调用的方法 对数据进行处理
  var _year=this._year;
  if(value > _year){
   this._year=value;
   this.edition+=value-_year;
  }
 }
})
book.year = 2016;
console.log(book.year,book.edition); // 2016 2
Salin selepas log masuk

Tentukan berbilang atribut

Kita boleh menambah berbilang sifat pada objek melalui kaedah Object.defineProperties() dalam ES5 Kaedah ini menerima dua parameter objek Parameter pertama ialah objek yang sifatnya akan ditambah dan diubah suai, dan parameter kedua ialah The atribut sepadan dengan atribut yang akan ditambah dan diubah suai dalam objek pertama.

DEMO

var book={};
Object.defineProperties(book,{
 _year:{
  value:2015,
  writable:true //注意这里设置成true 才可以 "写" 默认是false 
 },
 edition:{
  value:1,
  writable:true //注意这里设置成true 才可以 "写" 默认是false
 },
 year:{
  get:function(){
   return this._year;
  },
  set: function (value) {
   var _year=this._year;
   if(value > _year){
    this._year=value;
    this.edition+=value-_year;
   }
  }
 }
})
book.year=2016;
console.log(book.year,book.edition); // 2016 2
Salin selepas log masuk

Baca sifat sifat objek

Menggunakan kaedah Object.getOwnPropertyDescriptor() dalam ES5, anda boleh mendapatkan deskriptor bagi harta yang diberikan.

Kaedah ini menerima dua parameter: objek tempat atribut terletak dan nama atribut deskriptor untuk dibaca. Apa yang dikembalikan ialah objek. Jika ia adalah atribut data, atribut yang dikembalikan boleh dikonfigurasikan, boleh dibilang, boleh ditulis, nilai.

DEMO


var book={};
Object.defineProperties(book,{
 _year:{
  value:2015,
  writable:true
 },
 edition:{
  value:1,
  writable:true
 },
 year:{
  get:function(){
   return this._year;
  },
  set: function (value) {
   var _year=this._year;
   if(value > _year){
    this._year=value;
    this.edition+=value-_year;
   }
  }
 }
})
//对象遍历函数
function showAllProperties(obj){
 for(var attr in obj){
  console.log(attr+':'+obj[attr]);
 }
}
var descriptor= Object.getOwnPropertyDescriptor(book,'_year');//数据属性
var descriptor2= Object.getOwnPropertyDescriptor(book,'year');//访问器属性
showAllProperties(descriptor);
console.log('============================');
showAllProperties(descriptor2);
Salin selepas log masuk
Itu sahaja pengenalan di atas kepada pemahaman awal JavaScript berorientasikan objek Beri perhatian.

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Apr 03, 2024 am 11:55 AM

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

Cara membuat carta candlestick saham menggunakan PHP dan JS Cara membuat carta candlestick saham menggunakan PHP dan JS Dec 17, 2023 am 08:08 AM

Cara menggunakan PHP dan JS untuk mencipta carta lilin saham Carta lilin saham ialah grafik analisis teknikal biasa dalam pasaran saham Ia membantu pelabur memahami saham dengan lebih intuitif dengan melukis data seperti harga pembukaan, harga penutup, harga tertinggi. dan harga terendah turun naik harga saham. Artikel ini akan mengajar anda cara membuat carta lilin saham menggunakan PHP dan JS, dengan contoh kod khusus. 1. Persediaan Sebelum memulakan, kita perlu menyediakan persekitaran berikut: 1. Pelayan yang menjalankan PHP 2. Pelayar yang menyokong HTML5 dan Kanvas 3

Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS Alat penting untuk analisis saham: Ketahui langkah-langkah untuk melukis carta lilin dengan PHP dan JS Dec 17, 2023 pm 06:55 PM

Alat penting untuk analisis saham: Pelajari langkah-langkah untuk melukis carta lilin dalam PHP dan JS, contoh kod khusus diperlukan Dengan perkembangan pesat Internet dan teknologi, perdagangan saham telah menjadi salah satu cara penting bagi banyak pelabur. Analisis saham adalah bahagian penting dalam membuat keputusan pelabur, dan carta lilin digunakan secara meluas dalam analisis teknikal. Mempelajari cara melukis carta lilin menggunakan PHP dan JS akan memberikan pelabur maklumat yang lebih intuitif untuk membantu mereka membuat keputusan yang lebih baik. Carta candlestick ialah carta teknikal yang memaparkan harga saham dalam bentuk candlestick. Ia menunjukkan harga saham

Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Dec 18, 2023 pm 03:39 PM

Dengan perkembangan pesat kewangan Internet, pelaburan saham telah menjadi pilihan semakin ramai orang. Dalam perdagangan saham, carta lilin adalah kaedah analisis teknikal yang biasa digunakan Ia boleh menunjukkan trend perubahan harga saham dan membantu pelabur membuat keputusan yang lebih tepat. Artikel ini akan memperkenalkan kemahiran pembangunan PHP dan JS, membawa pembaca memahami cara melukis carta lilin saham dan menyediakan contoh kod khusus. 1. Memahami Carta Lilin Saham Sebelum memperkenalkan cara melukis carta lilin saham, kita perlu memahami dahulu apa itu carta lilin. Carta candlestick telah dibangunkan oleh orang Jepun

Hubungan antara js dan vue Hubungan antara js dan vue Mar 11, 2024 pm 05:21 PM

Hubungan antara js dan vue: 1. JS sebagai asas pembangunan Web; 2. Kebangkitan Vue.js sebagai rangka kerja hadapan 3. Hubungan pelengkap antara JS dan Vue; Vue.

Terokai pengaturcaraan berorientasikan objek dalam Go Terokai pengaturcaraan berorientasikan objek dalam Go Apr 04, 2024 am 10:39 AM

Bahasa Go menyokong pengaturcaraan berorientasikan objek melalui definisi jenis dan perkaitan kaedah. Ia tidak menyokong warisan tradisional, tetapi dilaksanakan melalui gubahan. Antara muka menyediakan ketekalan antara jenis dan membenarkan kaedah abstrak ditakrifkan. Kes praktikal menunjukkan cara menggunakan OOP untuk mengurus maklumat pelanggan, termasuk mencipta, mendapatkan, mengemas kini dan memadam operasi pelanggan.

Ciri Lanjutan PHP: Amalan Terbaik dalam Pengaturcaraan Berorientasikan Objek Ciri Lanjutan PHP: Amalan Terbaik dalam Pengaturcaraan Berorientasikan Objek Jun 05, 2024 pm 09:39 PM

Amalan terbaik OOP dalam PHP termasuk konvensyen penamaan, antara muka dan kelas abstrak, pewarisan dan polimorfisme, dan suntikan kebergantungan. Kes praktikal termasuk: menggunakan mod gudang untuk mengurus data dan menggunakan mod strategi untuk melaksanakan pengisihan.

Analisis ciri berorientasikan objek bahasa Go Analisis ciri berorientasikan objek bahasa Go Apr 04, 2024 am 11:18 AM

Bahasa Go menyokong pengaturcaraan berorientasikan objek, mentakrifkan objek melalui struct, mentakrifkan kaedah menggunakan penerima penunjuk, dan melaksanakan polimorfisme melalui antara muka. Ciri berorientasikan objek menyediakan penggunaan semula kod, kebolehselenggaraan dan enkapsulasi dalam bahasa Go, tetapi terdapat juga pengehadan seperti kekurangan konsep tradisional kelas dan pewarisan dan hantaran tandatangan kaedah.

See all articles