Maison > interface Web > js tutoriel > le corps du texte

Javascript peut-il créer des objets sans utiliser new ?

青灯夜游
Libérer: 2023-01-06 11:18:12
original
3348 Les gens l'ont consulté

Javascript peut créer des objets sans utiliser l'opérateur new : 1. Utilisez l'instruction "var objectName={attribute name 1 : value 1,attribut name 2 : value 2,...};" , utilisez l'instruction "Object.create (objet prototype, descripteurs)".

Javascript peut-il créer des objets sans utiliser new ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

javascript n'utilise pas la nouvelle méthode pour créer un objet

Quantité directe de l'objet

Utiliser la quantité directe Les objets peuvent être créés rapidement et constituent le moyen le plus efficace et le plus simple. L'utilisation spécifique est la suivante :

var objectName = {
    属性名1 : 属性值1,
    属性名2 : 属性值2,
    ...
    属性名n : 属性值n
};
Copier après la connexion

Dans les littéraux d'objet, le nom de l'attribut et la valeur de l'attribut sont séparés par des deux-points. La valeur de l'attribut peut être n'importe quel type de données et le nom de l'attribut peut être un identifiant JavaScript ou un. chaîne. Les propriétés sont séparées par des virgules et aucune virgule n'est requise à la fin de la dernière propriété.

Exemple 1

Le code suivant utilise des littéraux d'objet pour définir deux objets.

var o = {  //对象直接量
    a : 1,  //定义属性
    b : true  //定义属性
}
var o1 = {  //对象直接量
    "a" : 1,  //定义属性
    "b" : true  //定义属性
}
Copier après la connexion

Exemple 2

La valeur de l'attribut peut être n'importe quel type de valeur. Si la valeur de la propriété est une fonction, la propriété est également appelée méthode.

var o = {  //对象直接量
    a : function () {  //定义方法
        return 1;
    }
}
Copier après la connexion

Exemple 3

Si la valeur de l'attribut est un objet, vous pouvez concevoir un objet de structure imbriquée.

var o = {  //对象直接量
    a : {  //嵌套对象
        b : 1
    }
}
Copier après la connexion

Exemple 4

Un objet vide peut être défini s'il ne contient aucune propriété.

var o = {}  //定义一个空对象直接量
Copier après la connexion

Utiliser Object.create

Object.create est une nouvelle méthode statique dans ECMAScript 5, utilisée pour créer un objet instance. Cette méthode peut spécifier le prototype et les propriétés de l'objet. L'utilisation spécifique est la suivante :

Object.create(prototype, descriptors)
Copier après la connexion

La description du paramètre est la suivante :

  • prototype : un paramètre obligatoire, spécifiant l'objet prototype, qui peut être nul.

  • descripteurs : paramètre facultatif, un objet JavaScript contenant un ou plusieurs descripteurs de propriété. Le descripteur de propriété contient des propriétés de données et des propriétés d'accesseur, où les propriétés de données sont décrites ci-dessous.

  • valeur : Spécifiez la valeur de l'attribut.

  • writable : La valeur par défaut est false, définit si la valeur de l'attribut est accessible en écriture.

  • enumerable : la valeur par défaut est false, définissez si la propriété est énumérable (pour/dans).

  • configurable : la valeur par défaut est false, définit si les caractéristiques des attributs peuvent être modifiées et les attributs supprimés.

L'attribut accesseur contient deux méthodes, qui sont brièvement décrites comme suit :

  • set() : définit la valeur de l'attribut.

  • get() : renvoie la valeur de l'attribut.

Exemple 1

L'exemple suivant utilise Object.create pour définir un objet, hérite de null et contient deux propriétés énumérables size et shape , les valeurs d'attribut sont respectivement "grandes" et "rondes".

var newObj = Object.create (null, {
    size : {  //属性名
        value : "large",  //属性值
        enumerable : true  //可以枚举
    },
    shape : {  //属性名
        value : "round",  //属性值
        enumerable : true  //可以枚举
    }
});
console.log(newObj.size);  //large
console.log(newObj.shape);  //round
console.log(Object.getPrototypeOf(newObj));  //null
Copier après la connexion

Exemple 2

L'exemple suivant utilise Object.create pour définir un objet avec le même prototype que le littéral d'objet.

var obj = Object.create(Object.prototype, {  //继承Obj.prototype原型对象
    x : {
        value : undefined,  //属性值
        writable : true,  //可写
        configurable : true,  //可以配置
        enumerable : true  //可以枚举
    }
});
console.log("obj.prototype = " + Object.getPrototypeOf(obj));  //"obj.prototype =[object, Object]"
Object.getPrototypeOf() 函数可获取原始对象的原型。如果要获取对象的属性描述符,可以使用 Object.getOwnPropertyDescriptor() 函数。
Copier après la connexion

Exemple 3

L'exemple suivant définit un objet et utilise la propriété d'accesseur b pour lire et écrire la propriété de données a.

var obj = Object.create(Object.prototype, {
    a : {  //数据属性a
        writable : true,
        value : "a"
    },
    b : {  //访问器属性b
        get : function () {
            return this.a;
        },
        set : function (value) {
            this.a = value;
        },
    }
});
console.log(obj.a);  //"a"
console.log(obj.b);  //"a"
obj.b = 20;
console.log(obj.b);  //20
Copier après la connexion

[Recommandations associées : Tutoriel d'apprentissage Javascript]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!