Rumah > hujung hadapan web > tutorial js > Nota kajian JavaScript: Mencipta kemahiran objects_javascript

Nota kajian JavaScript: Mencipta kemahiran objects_javascript

WBOY
Lepaskan: 2016-05-16 15:08:08
asal
1426 orang telah melayarinya

JavaScript mempunyai objek terbina dalam seperti Date, Array, String, dsb., yang berkuasa dan mudah digunakan, dan semua orang menyukainya, bagaimanapun, apabila berurusan dengan beberapa logik yang kompleks, objek terbina dalam sangat tidak berkuasa , dan pembangun selalunya perlu menyesuaikan objek .

Menurut takrifan JavaScript, objek ialah koleksi sifat tidak tertib dan sifatnya boleh mengandungi nilai asas, objek atau fungsi. Maksudnya, objek ialah satu set atribut tanpa susunan tertentu Setiap atribut dipetakan kepada nilai, iaitu satu set pasangan nilai kunci Nilai boleh menjadi data atau objek.

Objek ialah jenis data asas JavaScript. Dalam JavaScript, nilai selain daripada rentetan, nombor, benar, palsu, batal, dan tidak ditentukan adalah objek. Oleh itu, sangat sukar untuk meneruskan pembelajaran JavaScript tanpa memahami objek. Mula belajar tentang objek hari ini.

Ikhtisar

Objek ialah jenis data asas dalam JavaScript Dari segi struktur data, ia adalah jadual cincang, yang boleh dianggap sebagai koleksi atribut yang tidak tertib, kecuali nilai asal. Nilai ini diakses melalui nama harta, yang boleh berupa sebarang rentetan termasuk aksara nol. Secara ringkasnya, objek ialah koleksi atribut Setiap atribut mengandungi nama (kunci) dan nilai (nilai).

Untuk memahami maksud objek JavaScript, anda boleh memikirkannya dengan cara ini. Dalam JavaScript, objek ialah entiti konkrit dengan sifat. Ambil gadis yang anda lihat Gadis ini adalah objek Dia mempunyai sifatnya sendiri. Contohnya, ketinggian, umur, nama gadis itu, dsb. Begitu juga, dalam JavaScript, sifat juga boleh digunakan untuk menentukan ciri objek.

Buat objek

Oleh kerana anda ingin mempelajari objek, anda mesti mempunyai objek terlebih dahulu Kemudian timbul persoalan, bagaimana untuk mencipta objek dalam JavaScript? Seterusnya, mari kita lihat cara membuat objek dalam JavaScript.

Banyak buku tentang JavaScript memperkenalkan kaedah penciptaan objek, terutamanya termasuk:

Gunakan literal objek untuk mencipta objek (nilai-kunci)

Gunakan baharu untuk mencipta objek

Gunakan Object.create() untuk mencipta objek

Gunakan fungsi untuk mencipta objek

Buat objek menggunakan prototaip

Buat objek menggunakan literal objek

Objek literal ialah bentuk termudah untuk mencipta objek. Ia bertujuan untuk memudahkan proses mencipta objek yang mengandungi sejumlah besar sifat. Objek literal ialah jadual pemetaan yang terdiri daripada pasangan nama atribut (kunci) dan nilai atribut (nilai). , Keseluruhan Jadual pemetaan disertakan dalam pendakap kerinting ({}).

Sintaks untuk mencipta objek melalui literal objek adalah seperti berikut:

var obj = {
property_1: value_1, // property_# 可能是一个标识符...
2: value_2, // 或者是一个数字
// ...,
"property n": value_n // 或是一个字符串
};

Salin selepas log masuk

Di sini obj ialah nama objek yang dicipta, setiap property_i ialah pengecam (boleh jadi nama, nombor atau rentetan literal), dan setiap value_i ialah nilainya, dan nilai ini diberikan kepada property_i. Mari lihat contoh khusus:

var girl = {
'name': '欣欣',
'age' : 18,
'height': 175,
'weight': 45
}
Salin selepas log masuk

Contoh ini mencipta objek bernama gadis Objek mempunyai empat atribut: nama, umur, tinggi dan berat. Empat atribut ini sepadan dengan nilai atribut.

Apabila mencipta objek menggunakan literal objek, jika anda membiarkan pendakap kerintingnya ({}) kosong, anda boleh menentukan objek yang mengandungi sifat dan kaedah lalai sahaja. Seperti:

var obj = {}
Salin selepas log masuk

Apabila menggunakan objek yang dibuat dengan cara ini, anda boleh mencipta atribut objek untuk obj objek melalui titik (.), iaitu, obj.key dan menetapkan nilai atribut objek. Selain itu, anda juga boleh mencipta atribut objek untuk obj objek melalui kurungan segi empat sama ([]), iaitu, obj['key'] dan menetapkan nilai atribut objek. Sebagai contoh di bawah:

var girl = {};
girl.name = '欣欣';
girl.age = 18;
girl['height'] = 175;
girl['weight'] = 45;
Salin selepas log masuk

Apabila mencetak objek gadis dalam Chrome, hasil output adalah seperti berikut:

console.log(girl);
//Object {name: "欣欣", age: 18, height: 175, weight: 45}
Salin selepas log masuk

Gunakan baharu untuk mencipta objek

Anda juga boleh mencipta objek dengan menggunakan operator baharu diikuti dengan pembina Objek (lebih lanjut mengenai pembina kemudian):

var obj = new Object(); // Sama seperti obj = {}

Walaupun obj ialah objek kosong dalam keadaan awal, ahli boleh ditambah dan digunakan secara dinamik dengan mudah dalam JavaScript, jadi kami boleh terus menambah pembolehubah dan kaedah ahli. Seperti:

var girl = new Object();
girl['name'] = '欣欣';
girl['age'] = 18;
girl['height'] = 175;
girl['weight'] = 45;
Salin selepas log masuk

Gunakan Object.create() untuk mencipta objek

Objek juga boleh dibuat menggunakan kaedah Object.create(). Kaedah ini berguna kerana ia membolehkan anda memilih objek prototaip untuk objek yang dicipta tanpa menentukan pembina.

Kaedah Object.create() mencipta objek dengan prototaip yang ditentukan dan beberapa sifat yang ditentukan.

Object.create(proto, [ propertiesObject ])

Kaedah Object.create() mencipta objek dan menerima dua parameter Parameter pertama ialah proto objek proto bagi objek ini; Kaedah ini sangat mudah digunakan:

var obj1 = Object.create({
x: 1,
y: 2
}); //对象obj1继承了属性x和y
var obj2 = Object.create(null); //对象obj2没有原型
Salin selepas log masuk

如果 proto 参数不是 null 或一个对象值,则抛出一个 TypeError 异常。
有关于Object.create()方法更多的示例可以点击这里进行了解。

使用函数创建对象

在实际使用当中,字面量创建对象虽然很有用,但是它并不能满足我们的所有需求,我们希望能够和其他后台语言一样创建一个类,然后声明类的实例就能够多次使用,而不用每次使用的时候都要重新创建它。

因为JavaScript没有类,一般都是使用函数来定义一个类似其他语言中的类格式,比如:

function Person() {
this.name = "mary"; // 为这个类添加一个成员变量name,并为这个成员变量赋默认值
this.age = 5;
this.sayHello = function () {
console.log(this.name + " : " + this.age);
};
}
Salin selepas log masuk

定义好类之后,我们就可以像下面这样创建和使用对象:

var person1 = new Person();
person1.name = 'Tom';
person1.age = 20;
person1.sayHello(); // Tom : 20
var person2 = new Person();
person2.name = 'W3cplus';
person2.age = 5;
person2.sayHello(); // W3cplus : 5
Salin selepas log masuk

Person()函数不是用来被调用的,它是用来被new用的。

通过原型创建对象

这种方法比较前几种方法来说算是最为复杂,最为高级的方法。这里还涉及到封装的一些知识(有关于这些后续学习到了再记录)。这里简单看看如何通过原型创建对象。

首先像函数方法创建对象一样,先定义一个函数:

function Person() {
this.name = "W3cplus";
this.age = 5;
this.walk = function () {
console.log("一个前端网站...");
};
}
Salin selepas log masuk

然后在外部可以扩允成员:

//添加成员方法
Person.prototype.sayHello = function () {
console.log("hello");
};
//也可以添加成员属性,
Person.prototype.height = 100;
Salin selepas log masuk

一方面,原型可以扩充原有类的功能(特别是添加有用方法),也可以像下面这样写:

function Person() { }
Person.prototype.name = "W3cplus";
Person.prototype.age = 5;
Person.prototype.walk = function () {
console.log("一个前端网站...");
};
Person.prototype.sayHello = function () {
console.log("hello");
};
Person.prototype.height = 100;
Salin selepas log masuk

属性访问

对象属性访问一般有两种方法,第一种是使用点(.)表示法,这也是最常用的一种方法,也是很多面向对象语言中通用的语法。第二种方法还可以使用中括号([])表示法来访问对象的属性。在使用中括号语法时,应该将要访问的属性以字符串的形式放在中括号中。如下:

person['name'];
person.name;
Salin selepas log masuk

从功能上来说,上面两种方法访问对象属性没有任何区别。但中括号语法的主要优点有两个:

可能通过变量访问属性,如下:

var propertyName = 'name';
person[propertyName];
Salin selepas log masuk

另外一个优点是,如果属性名中包含了会导致语法错误的字符或者属性名使用的是关键字或保留字,可以使用中括号访问属性,如下:

person['first name'];

一般情况之下,除非必须使用亦是来访问对象属性,否则建议使用点(.)的方法来访问对象属性。

总结

对象是JavaScript的基本数据类型,如果要更好的往下学习JavaScript相关的知识,很有必要先把对象整明白。这篇主要介绍了几种创建对象的方法。较为简单的是通过字面量({})和new Object()方法创建,但这两种方法创建的对象复用性较差;使用Object.create()创建对象时不需要定义一个构造函数就允许你在对象中选择其原型对象。除了这几种方法还可以使用函数和原型创建对象,而这两种方法相对来说可复用性强,只是使用较为复杂。

有关JavaScript学习笔记之创建对象的知识小编就给大家介绍到这里,希望对大家有所帮助!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan