javascript面向对象是什么?js中对象的理解
本篇文章给大家带来的内容是关于javascript面向对象是什么?js中对象的理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
1、面向对象
面向对象的语言最基本的标志就是类的概念。什么是类?类是包含多个属性和方法的集合,类的实例即对象。
因为历史原因,ECMAScript(后面简称JS)中对象的概念与基于类的语言的对象有所不同。ECMA-262 中把对象定义为“无序属性的集合,其属性可以包含基本值、对象或者函数”。
每个对象都是基于一个引用类型创建的。
2、理解对象
2.1、JS中创建对象有两种方式:
// 第一种:创建Object实例 var person = new Object(); person.name = 'tom'; person.age = 20; person.sayIt = function(){console.log(this.name, this.age)} // 第二种:对象字面量值 var person = { name: 'tom', age: 20, sayIt: function(){console.log(this.name, this.age)} }
上面两个例子创建的对象是一样的,都有一样的属性和方法。
2.2、 数据属性和访问器属性
JS对象的键(即name、sayIt这种属性和方法)分为两种类型的属性:数据属性和访问器属性。
2.2.1、数据属性
数据属性包含一个数据值的位置,在这个位置可以读取和写入值。包含以下4个特性:
Configurable:表示能否delete删除属性、该属性描述符的类型能否被改变。默认值为false,创建实例不指定该值时会默认为true。
Enumerable:表示属性是否可枚举(for-in)。默认值为false,创建实例不指定该值时会默认为true。
Writable:表示属性值是否可修改。默认值为false,创建实例不指定该值时会默认为true。
Value:表示属性的值。默认值为undefined,创建实例不指定该值时会默认为undefined。
如创建实例:
var person = { name: 'tom' }
person对象的属性name的数据属性Configurable、Enumerable、Writable均为true,即name属性可删除、可枚举、可改写值,name属性的当前值为'tom'。
想要修改属性的数据属性,可以通过ES5提供的Object.defineProperty()方法,这个方法还可以给对象新增一个属性,该方法有三个参数:目标对象,要定义或修改的属性的名称,需要定义或修改的数据属性
下面修改person实例的name属性:
var person = { name: 'tom' } Object.defineProperty(person, 'name', { configurable: false, enumerable: false, writable: false, value: 1 }) console.log(person.name); // 1,name属性的值已修改为1 delete person.name; console.log(person.name); // 1, name属性依然存在 for(var i in person){ console.log(i); // undefined,name属性不可枚举 } person.name = 2; console.log(person.name); // 1,name的值依然为1,不可修改
注意:Object.defineProperty()方法在设置configurable为false后不能在修改除writable之外的特性。
2.2.2、访问器属性
访问器属性没有数据值,仅有两个函数:
getter函数,获取有效值
setter函数,设置有效值
访问器属性的常用使用方式就是通过设置一个属性的值改变其他属性,访问器属性同样包含4个特性:
Configurable:表示能否delete删除属性、该属性描述符的类型能否被改变。默认值为false,创建实例不指定该值时会默认为true。
Enumerable:表示属性是否可枚举(for-in)。默认值为false,创建实例不指定该值时会默认为true。
Get:在读取属性时调用的函数,默认值为undefine。
Set:在写入属性时调用的函数,默认值为undefine。
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; console.log(book.edition); //2
其中year即为访问器属性,_year是数据属性。访问器属性year的Configurable和Enumerable未设置,所以是false,即访问器属性year不可删除、不可枚举。
可以通过Object.getOwnPropertyDescriptor()方法读取属性的特性:
var descriptor = Object.getOwnPropertyDescriptor(book, '_year'); console.log(descriptor.writable); // true console.log(descriptor.configurable); // true
总结:
javasc的对象即为多个属性与方法的集合的实例,其属性分为数据属性和访问器属性两种类型,可以通过Object提供的各种方法读取、修改对象的属性。
相关推荐:
Atas ialah kandungan terperinci javascript面向对象是什么?js中对象的理解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

AI Hentai Generator
Menjana ai hentai secara percuma.

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



Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

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

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

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

Penggunaan: Dalam JavaScript, kaedah insertBefore() digunakan untuk memasukkan nod baharu dalam pepohon DOM. Kaedah ini memerlukan dua parameter: nod baharu untuk dimasukkan dan nod rujukan (iaitu nod di mana nod baharu akan dimasukkan).

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 ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web, manakala WebSocket ialah protokol rangkaian yang digunakan untuk komunikasi masa nyata. Menggabungkan fungsi berkuasa kedua-duanya, kami boleh mencipta sistem pemprosesan imej masa nyata yang cekap. Artikel ini akan memperkenalkan cara untuk melaksanakan sistem ini menggunakan JavaScript dan WebSocket, dan memberikan contoh kod khusus. Pertama, kita perlu menjelaskan keperluan dan matlamat sistem pemprosesan imej masa nyata. Katakan kita mempunyai peranti kamera yang boleh mengumpul data imej masa nyata
