Maison >interface Web >js tutoriel >Notes d'étude JavaScript : Création de compétences objets_javascript

Notes d'étude JavaScript : Création de compétences objets_javascript

WBOY
WBOYoriginal
2016-05-16 15:08:081409parcourir

JavaScript a des objets intégrés tels que Date, Array, String, etc., qui sont puissants et faciles à utiliser, et tout le monde les aime. Cependant, lorsqu'il s'agit d'une logique complexe, les objets intégrés sont très impuissants. , et les développeurs doivent souvent personnaliser les objets.

Selon la définition de JavaScript, un objet est une collection de propriétés non ordonnées, et ses propriétés peuvent contenir des valeurs de base, des objets ou des fonctions. Autrement dit, un objet est un ensemble d'attributs sans ordre particulier. Chaque attribut est mappé à une valeur, qui est un ensemble de paires clé-valeur. La valeur peut être une donnée ou un objet.

L'objet est le type de données de base de JavaScript. En JavaScript, les valeurs autres que les chaînes, les nombres, vrai, faux, nul et non défini sont des objets. Par conséquent, il est très difficile de continuer à apprendre JavaScript sans comprendre les objets. Commencez à en apprendre davantage sur les objets dès aujourd'hui.

Aperçu

L'objet est un type de données de base en JavaScript. En termes de structure de données, il s'agit d'une table de hachage, qui peut être considérée comme une collection non ordonnée d'attributs. Ces valeurs sont accessibles via le nom de la propriété, qui peut être n'importe quelle chaîne incluant le caractère nul. Pour faire simple, un objet est une collection d'attributs. Un attribut contient un nom (clé) et une valeur (valeur).

Pour comprendre ce qu'est un objet JavaScript, vous pouvez y penser de cette façon. En JavaScript, un objet est un corps spécifique doté de propriétés. Prenez la fille que vous voyez. Cette fille est un objet. Elle a ses propres attributs. Par exemple, la taille, l’âge, le nom de la fille, etc. De même, en JavaScript, les propriétés peuvent également être utilisées pour définir les caractéristiques d'un objet.

Créer un objet

Puisque vous voulez apprendre des objets, vous devez d'abord avoir un objet. Ensuite la question se pose, comment créer un objet en JavaScript ? Voyons ensuite comment créer des objets en JavaScript.

De nombreux livres sur JavaScript présentent des méthodes de création d'objets, notamment :

Utiliser des littéraux d'objet pour créer des objets (valeur-clé)

Utilisez new pour créer des objets

Créer des objets en utilisant Object.create()

Utiliser des fonctions pour créer des objets

Créer des objets à l'aide de prototypes

Créer des objets à l'aide de littéraux d'objet

Le littéral d'objet est la forme la plus simple de création d'objets. Il vise à simplifier le processus de création d'objets contenant un grand nombre de propriétés. Le littéral d'objet est une table de mappage composée de paires de noms d'attribut (clés) et de valeurs d'attribut (valeurs) La clé et la valeur sont séparées par des deux-points (:), et chaque paire clé/valeurs est séparée par des virgules (). ,). L'intégralité des tables de mappage est entourée d'accolades ({}).

La syntaxe de création d'objets via des littéraux d'objet est la suivante :

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

Ici obj est le nom de l'objet créé, chaque property_i est un identifiant (peut être un nom, un nombre ou une chaîne littérale), et chaque value_i est sa valeur, et cette valeur est attribuée à property_i. Regardons un exemple spécifique :

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

Cet exemple crée un objet nommé girl. L'objet a quatre attributs : nom, âge, taille et poids. Ces quatre attributs correspondent à une valeur d'attribut.

Lors de la création d'un objet à l'aide d'un littéral d'objet, si vous laissez ses accolades ({}) vides, vous pouvez définir un objet contenant uniquement les propriétés et méthodes par défaut. Tel que :

var obj = {}

Lorsque vous utilisez un objet créé de cette manière, vous pouvez créer des attributs d'objet pour l'objet obj via le point (.), c'est-à-dire obj.key, et attribuer la valeur d'attribut de l'objet. De plus, vous pouvez également créer des attributs d'objet pour l'objet obj via des crochets ([]), c'est-à-dire obj['key'], et attribuer la valeur d'attribut de l'objet. A titre d'exemple ci-dessous :

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

Lors de l'impression de l'objet fille dans Chrome, le résultat de sortie est le suivant :

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

Utilisez new pour créer des objets

Vous pouvez également créer des objets en utilisant l'opérateur new suivi du constructeur Object (plus d'informations sur le constructeur plus tard) :

var obj = new Object(); // Identique à obj = {}

Bien que obj soit un objet vide dans son état initial, les membres peuvent être facilement ajoutés et utilisés dynamiquement en JavaScript, afin que nous puissions continuer à ajouter des variables et des méthodes membres. Tel que :

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

Utilisez Object.create() pour créer des objets

Les objets peuvent également être créés à l'aide de la méthode Object.create(). Cette méthode est utile car elle vous permet de choisir l'objet prototype pour l'objet créé sans définir de constructeur.

La méthode Object.create() crée un objet avec le prototype spécifié et plusieurs propriétés spécifiées.

Object.create(proto, [propertiesObject])

La méthode Object.create() crée un objet et accepte deux paramètres. Le premier paramètre est le prototype de cet objet ; le second est un paramètre facultatif pour décrire plus en détail les propriétés de l'objet. Cette méthode est très simple à utiliser :

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

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

使用函数创建对象

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

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

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

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

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

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

通过原型创建对象

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

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

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

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

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

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

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;

属性访问

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

person['name'];
person.name;

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

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

var propertyName = 'name';
person[propertyName];

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

person['first name'];

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

总结

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

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn