https://segmentfault.com/a/1190000015438195
很有趣的三个简单差异
var a = 1function test () {console.log(this.a)}test()// 1
let a = 1function test () {console.log(this.a)}test()// undefined
'use strict'var a = 1function test () {console.log(this.a)}test()// Uncaught TypeError: Cannot read property 'a' of undefined
一、不带任何引用形式的去调用,test()
this指向全局对象。
在非严格模式下,没有其他影响去改变this的时候,this默认指向全局对象(浏览器是window,node是global)。
问题为什么在严格模式下,在方法里的this是undefined??
二、拥有调用者的this,obj.test()
当方法拥有调用者时,谁去调用的,this就绑定在谁身上。
var a = 1function test () {console.log(this.a)}var obj = {a: 2,test}var testCopy = obj.testtestCopy()// obj.test()
