一个函数是否被new有啥区别?

2019-12-17  本文已影响0人  percykuang
function Person(name, age) {
  this.name = name
  this.age = age
}

new Person('Flinn', 20)
// 在函数体里面实际会发生如下操作:
// var this = {}
// this.name = name
// this.age = age
// return undefined (被忽略)
// return this

Person('King', 22)
// 在函数体里面实际会发生如下操作:
// this.name = name (浏览器下,函数在window上下文被调用,所以this为window,所以window.name = 'King')
// this.age = age   (浏览器下,函数在window上下文被调用,所以this为window,所以window.age = 22)
// return undefined

但是要注意:

上一篇 下一篇

猜你喜欢

热点阅读