Littéral d'objet JavaScript
En JavaScript, les objets peuvent être créés via l'instanciation de classe, ou les objets peuvent être créés directement à l'aide de littéraux d'objet.
Dans les langages de programmation, un littéral est une notation qui représente une valeur. Par exemple, « Hello, World ! » représente une chaîne littérale dans de nombreux langages. JavaScript ne fait pas exception, comme 5, true, false et null, qui représentent respectivement un entier, deux valeurs booléennes et un objet vide.
JavaScript prend en charge les littéraux d'objet, permettant de créer des objets en utilisant une notation concise et lisible.
Un littéral d'objet est une liste de paires nom/valeur, chaque paire nom/valeur étant séparée par des virgules et entourée d'accolades. Une paire nom/valeur représente une propriété ou une méthode d'un objet, avec le nom et la valeur séparés par deux points.
Par exemple :
var myCar={ "price" : ",000" , // 属性 "color" : "red" , // 属性 "run" : function(){ return " 120 km/h "; } // 方法 } var myHome={ population : "10,000" , area : "10,000" , adress : { // 属性 country : "China" , province : "shanxi" , city : "xian" }, say : function(){ // 方法 return "My hometown is very beautiful ! "; } }
Créer un objet zhangsan :
var zhangsan={ name : "张三", sex : "男", say:function(){ return "嗨!大家好,我来了。"; }, contact : { tel : "029-81895644", qq : "1370753465", email : "it@gmail.com" } } alert("姓名:"+zhangsan.name); alert("性别:"+zhangsan.sex); alert(zhangsan.say()); alert("电话:"+zhangsan.contact.tel); alert("QQ:"+zhangsan.contact.qq); alert("邮箱:"+zhangsan.contact.email);
On peut voir que :
Utiliser des littéraux d'objet pour créez un seul objet, la sémantique est intuitive.
Les littéraux d'objet peuvent être imbriqués.
Les littéraux d'objet peuvent également être créés en premier, puis ajouter des propriétés et des méthodes.
L'objet zhangsan ci-dessus peut également être créé comme ceci :
var zhangsan={} zhangsan.name = "张三"; zhangsan.sex = "男"; zhangsan.say = function(){ return "嗨!大家好,我来了。"; } zhangsan.contact = { tel : "029-81895644", qq : "1370753465", email : "it@gmail.com" }