关于JavaScript对象的所有属性和方法

145 阅读2分钟

关于JavaScript对象的所有属性和方法

这篇文章记录了所有Object 内置的对象属性和方法。

任何不属于原始类型(字符串、数字、布尔值、符号、空或未定义)的值都是一个对象。即使是数组或函数也是,在引擎盖下的对象。

一个object 值可以使用对象字面语法来生成。

const person = {}
typeof person //object

使用Object 全局函数。

const person = Object()
typeof person //object

或使用对象构造器。

const person = new Object()
typeof person //object

另一种语法是使用Object.create()

const car = Object.create()

你可以用这种语法来初始化对象的属性。

const person = {
  age: 36,
  name: 'Flavio',
  speak: () => {
    //speak
  }
}

const person = Object({
  age: 36,
  name: 'Flavio',
  speak: () => {
    //speak
  }
})

const person = new Object({
  age: 36,
  name: 'Flavio',
  speak: () => {
    //speak
  }
})

所有这些方式基本上都是等价的,因为它们都能让你访问我下面要列出的方法。

你也可以在一个大写字母的函数前使用new 关键字来初始化一个对象。这个函数可以作为该对象的构造函数。在那里,我们可以初始化我们收到的作为参数的参数,以设置对象的初始状态。

function Car(brand, model) {
  this.brand = brand
  this.model = model
}

我们用以下方法初始化一个新的对象

const myCar = new Car('Ford', 'Fiesta')
myCar.brand //'Ford'
myCar.model //'Fiesta'

对象有属性。每个属性都有一个名称和一个值。

你可能认为一个对象基本上是一个地图,或字典,数据结构,你会是正确的。

一个属性的值可以是任何类型,这意味着它甚至可以是一个对象,因为对象可以嵌套其他对象。

当一个属性值是一个函数时,我们称它为方法

对象可以从其他对象中继承它们的属性,当我们谈论继承时,我们会详细地看到这一点。

对象总是通过引用来传递

如果你给一个变量分配了另一个变量的相同值,如果它是一个原始类型,如数字或字符串,它们是通过值传递的。

let age = 36
let myAge = age
myAge = 37
age //36
const car = {
  color: 'blue'
}
const anotherCar = car
anotherCar.color = 'yellow'
car.color //'yellow'

内置的对象属性

Object对象有2个属性

  • length 总是等于1
  • prototype 这指向Object prototype对象:所有其他对象都继承自该对象。更多信息请查看原型继承的帖子。

静态方法

我们把方法分为静态方法和实例方法。静态方法是直接在Object 。实例方法是在一个对象实例上调用的(an 对象)。

静态方法是为在同一空间工作的函数提供一个命名空间的好方法。通过这种方式,我们没有全局函数,但所有的函数都在Object 全局对象下命名。

实例方法