📜  JavaScript 对象初始化器

📅  最后修改于: 2022-05-13 01:56:26.359000             🧑  作者: Mango

JavaScript 对象初始化器

JavaScript 中的对象可以与现实生活中的对象进行比较。它们具有附加的属性和方法,并且属性采用键值对的形式。让我们通过一个例子来理解这一点。在现实世界中,摩托车是一个对象,它具有名称、颜色、价格等属性。它附加了一些方法,如启动、制动、停止等。所有摩托车都具有相似的属性,但值会与众不同。同样的概念也适用于编程,称为面向对象编程

JavaScript 对象可以通过多种方式初始化,如下所示。

  1. 使用对象字面量
  2. 使用新的 Object() 方法
  3. 使用 Object.create() 方法
  4. 使用构造函数

让我们了解所有方法 -

使用对象字面量:
句法:

var obj = { name: "value", .... }

可以使用点表示法或括号表示法访问 JavaScript 对象的属性。例如, obj.nameobj['name']将为我们提供值。

例子:

Javascript
var person = {
  name: "Sarah",
  age: 20,
  gender: "female"
};
console.log(person);
console.log(person.name + " is a " + person.age + "
           year old " + person.gender);
console.log(person.name + " is a " + person.age + "
           year old " + person["gender"]);


Javascript
var Person = new Object();
Person.name = "Sarah";
Person['age'] = 20;
Person.gender = "female";
 
console.log(Person);
console.log(Person.name + " is a " + Person.age +
           " year old " + Person.gender);
console.log(Person.name + " is a " + Person.age +
          " year old " + Person["gender"]);


Javascript
var Person = Object.create({})
Person.name = "Sarah";
Person["age"] = 20;
Person.gender = "female";
 
console.log(Person);
console.log(Person.name + " is a " + Person.age +
           " year old " + Person.gender);
console.log(Person.name + " is a " + Person.age +
          " year old " + Person["gender"]);


Javascript
function Person(name, age, gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
 }
  
 var personOne = new Person("Sarah", 20, "gender");
 
console.log(personOne);
console.log(personOne.name + " is a " + personOne.age +
            " year old " + personOne.gender);
console.log(personOne.name + " is a " + personOne.age +
            " year old " + personOne["gender"]);


输出:

使用新的 Object() 方法:

句法:

var obj = new Object();
    obj.name = "value";

要么

obj["name"] = "value";

new Object()方法将创建一个新的 JavaScript 对象,其属性可以使用点或括号表示法进行初始化。

例子:

Javascript

var Person = new Object();
Person.name = "Sarah";
Person['age'] = 20;
Person.gender = "female";
 
console.log(Person);
console.log(Person.name + " is a " + Person.age +
           " year old " + Person.gender);
console.log(Person.name + " is a " + Person.age +
          " year old " + Person["gender"]);

输出:

使用 Object.create() 方法:

句法:

var Obj = Object.create({});
Obj.name = "value";

要么

Obj["name"] = "value";

Object.create()方法将创建一个新的 JavaScript 对象,其属性可以使用点或括号表示法初始化。

例子:

Javascript

var Person = Object.create({})
Person.name = "Sarah";
Person["age"] = 20;
Person.gender = "female";
 
console.log(Person);
console.log(Person.name + " is a " + Person.age +
           " year old " + Person.gender);
console.log(Person.name + " is a " + Person.age +
          " year old " + Person["gender"]);

输出:

使用构造函数:

句法:

function Obj(name) {
   this.name = name;
 }
 var myobj = new Obj("my name");

在此方法中,构造函数用于定义对象, this用于为属性赋值。使用new关键字创建对象的实例。

例子:

Javascript

function Person(name, age, gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
 }
  
 var personOne = new Person("Sarah", 20, "gender");
 
console.log(personOne);
console.log(personOne.name + " is a " + personOne.age +
            " year old " + personOne.gender);
console.log(personOne.name + " is a " + personOne.age +
            " year old " + personOne["gender"]);

输出:

支持的浏览器:

  • 铬 1 及以上
  • 边缘 12 及以上
  • 火狐 1 及以上
  • Internet Explorer 1 及更高版本
  • Opera 4 及以上
  • Safari 1 及以上