全栈训练营

JavaScript对象基础

2019-12-12  本文已影响0人  RicoTech666

创建一个JavaScript对象的不同方式有哪些?

function student (name, age) {
  this.name = name;
  this.age = age;
  this.greeting = function() {
    console.log('Hi, I am ' + this.name);
  }
}
var obj = new student('Bob', 20);
var student = new Object();
student.name = 'Bob';
student.age = 20;
student.greeting = function() {
  console.log('Hi, I am ' + this.name);
}
var student = {
  name: 'Bob',
  age: 20,
  greeting: function() {
    console.log('Hi, I am ' + this.name);
  }
}

基础的创建对象的方式一般即为以上三种,其余方法为基础方法之外的方法,现挑选部分方法罗列如下:

class student {
  constructor(name, age) {
    this.name = name;
    this.age = age;

    this.greeting = function() {
      console.log('Hi, I am ' + this.name);
    }
  }
}
var student1 = new student('Bob', 20);
var student = {
  name: 'Bob',
  age: 20,
  greeting: function() {
    console.log('Hi, I am ' + this.name);
  }
}
var student2 = Object.create(student);
student2.name = 'Alice';
student2.age = 21;

如何添加/删除属性?

我们先来看一段代码:

var student = {
  name: 'Bob',
  age: 20,
  greeting: function() {
    console.log('Hi, I am ' + this.name);
  }
}
delete student.age;
student.gender = 'Male';
console.log(student);

输出结果为:

{ name: 'Bob', greeting: [Function: greeting], gender: 'Male' }

在上述代码中,首先我们创建了一个名为student的对象,对应有属性nameage和方法greeting().
然后我们通过delete删除了其中的一个属性age,并且通过直接赋值的方式为其添加了一个属性gender.

通过[].访问/修改对象属性的区别是什么?

首先明确一点,不论是通过[]还是.都可以顺利的访问和修改已经定义过的对象的任何属性,然而在某些场景下,这两个还是有区别的。

如何遍历对象的属性和值?

在上一小节我们知道了如何分别获取对象中的属性和值,并且把他们存入了不同数组中。但在实际使用中,有时候我们并不需要把对象的属性和值分别拿出来,而是需要遍历处理。

那么如何进行遍历处理呢?我们可以通过for in的语法去遍历一个对象,举例如下:

var fruit = {
  apple: 20,
  pear: 20,
  peach: 10
};
var totalNum = 0;
for (let fruitElem in fruit) {
  if (fruit.hasOwnProperty(fruitElem)) {
    totalNum = fruit[fruitElem] + totalNum;
  }
}
console.log(totalNum);

在此例中,我们有一个名为fruit的对象,我们做的是遍历处理该对象,将对象所有属性的值相加并且打印输出。
在此需要注意的是,使用for in遍历对象时, 需要使用hasOwnProperty过滤掉原型中的属性,从而保证我们所处理的都是自己定义的属性。

浅谈JSON

聊到JavaScript对象,就不得不也同时聊一聊JSON.

首先,先看定义,JSON是一种轻量级的数据交换格式,全称为JavaScript对象表示法(JavaScript Object Notation)。所以说我们其实可以把JSON看作是一种存储数据的格式类型,或者说一种数据规范。

JSON这种数据格式用JS对象字面量的表示方法进行描述,那么描述JSON的语法就是JS对象字面量表示法语法的一个子集。但是于JavaScript不同的是,要注意JSON在描述属性时,属性需要用双引号包含住,并且JSON描述的对象不能有任何方法存在。

他的本质是文本文档,只不过需要按照JSON的格式书写,并且其文件后缀为.json.

更多关于JSON的详细介绍,请移步MDN官方的JSON使用简介.

上一篇下一篇

猜你喜欢

热点阅读