我们先把this打印出来,可以发现this指向window
console.log(this)
我们宣告一个全域变数a
var a = 3
console.log(this);
可以看到在window底下会有刚刚我们宣告的变数a
那如果是let、const呢 ?
let a = 3
console.log(this);
const a = 3
console.log(this);
let 、const 不同於var会使window底下有全域变数。
我们也可以换个思维,既然知道const、let是block scope,也就代表不会污染window!!!
var value = 3
var obj = {
value : 2,
log : function() {
console.log(this)
}
}
obj.log()
我们如果把obj2的log指向obj的log
var value = 3
var obj = {
value : 2,
log : function() {
console.log(this)
}
}
var obj2 = {
value: 100,
log: obj.log //point to obj2
}
obj2.log()
没错! 取决於谁呼叫谁
当然也有apply、bind等等,这边我们举call的例子即可,都大同小异。
var name = 'Ian'
function sayHi() {
console.log(this.name)
}
sayHi() //Ian
sayHi.call({name: 'Dennis'})
匿名箭头并不会绑定於该物件上。
obj = {
log: () => console.log(this)
}
obj.log() //window
但我们如果使用闭包的写法呢???
obj = {
value: '3',
log: function() {
setTimeout(() => console.log(this))
}
}
obj.log() //{value: '3', log: ƒ}
>>: < 关於 React: 开始打地基| 父组件、子组件、兄弟姐妹组件的关系 >
#伪类:before :after做左右画线标题效果 经常可以看到这样的标题设计是在左右有一条横线中...
舒安表示:影片开始前几秒的那张投影片纯属失误(放错张...),第11天就开始精神恍惚了 0.0 ...
修饰符(Modifier) 上一篇有讲到封装的特性,也就是把一个类别要运行操作所需用到的资讯都包...
1.前言 在各式各样的程序语言中,都有属於自己的语系,像是Arduino就偏向於C语言,而每种语言都...
昨天我们把试算表的前置作业完成,今天我们来看看将别人填表单後送到试算表中的内容怎麽被读取。 首先先来...