


Pemahaman awal tentang kemahiran javascript object-oriented_javascript
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(); // 谦龙 男
2 Gunakan bentuk literal objek
Contohnya
var person={ name:'谦龙', sex:'男', sayNameAndSex:function(){ console.log(this.name,this.sex) } } person.sayNameAndSex(); // 谦龙 男
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);//谦龙
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
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
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);

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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 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: 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

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: 1. JS sebagai asas pembangunan Web; 2. Kebangkitan Vue.js sebagai rangka kerja hadapan 3. Hubungan pelengkap antara JS dan Vue; Vue.

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.

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.

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.
