Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 1.34 KB

2.md

File metadata and controls

44 lines (34 loc) · 1.34 KB
class Chameleon {
  static colorChange(newColor) {
    this.newColor = newColor
  }

  constructor({ newColor = "green" } = {}) {
    this.newColor = newColor
  }
}

const freddie = new Chameleon({ newColor: "purple" })
freddie.colorChange("orange")

解析: colorChange方法是静态的。 静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。 由于freddie是一个子级对象,函数不会传递,所以在freddie实例上不存在freddie方法:抛出TypeError


function bark() {
  console.log("Woof!")
}

bark.animal = "dog"

解析: JavaScript中函数也是对象!(原始类型之外的所有东西都是对象)

函数是一种特殊类型的对象。您自己编写的代码并不是实际的函数。 该函数是具有属性的对象,此属性是可调用的 输出 Nothing, this is totally fine!


function Person(firstName, lastName) {
  this.firstName = firstName
  this.lastName = lastName
}

const member = new Person("Lydia", "Hallie")
Person.getFullName = () => this.firstName + this.lastName

console.log(member.getFullName())

解析:输出TypeError 不能像使用常规对象那样向构造函数添加属性。 如果要一次向所有对象添加功能,则必须使用原型。 所以在这种情况下应该这样写:Person.prototype.getFullName