一段代码验证 构造函数 new 操作中的this指向

117 阅读1分钟

一段代码验证 构造函数 new 操作中的this指向

一个构造函数的执行时有两种情况:

  1. 使用new命令,这时函数中的this指向new出来的实例对象
var fang = null
function F(){
    this.name = 'fang'
    this.sex = 'man'
    fang = this
    console.log(this)  
}
var f1 = new F()
console.log(f1 === fang) 

执行结果:

2. 不用使用new命令,直接执行构造函数,这时this指向window(node环境中指向global)

var fang = null
function F(){
   this.name = 'fang'
   this.sex = 'man'
   fang = this
   console.log(this)  
}
var f1 = F()  //把new操作符去掉
console.log(f1 === fang) 

执行结果: