二、JavaScript——this用法,理解
2019-08-12 本文已影响0人
陈程城
f12 打开浏览器控制台
一、this 概念
当前执行代码的环境对象
粗暴理解:this 就是个对象
二、多种情况
(一). 全局环境中
在全局执行环境中(在任何函数体外部)this
都指向
[1]全局对象。
console.log(this)
// window
(二). 函数内部
(划重点,划重点,划重点,划重点,划重点,划重点)
1. 简单调用
this
指向window
function haha(){
console.log(this)
}
haha()
// window
个人理解
- haha()本身就是window对象下的一个函数
- haha()是被window这个对象调用的
- 把
haha()
看做window.haha()
- 所以用
2.作为对象的方法
理解的话 - 函数
haha
内部的this
,指向调用haha
的对象window
2. 作为对象的方法
-
如果这个函数是在对象的内部,并且是作为对象的方法被调用
那么,
this
指向调用这个函数的对象
var hahaObject = {
hahaName:'l名字',
hahaMethod:function(){
console.log(this)
}
}
hahaObject.hahaMethod() // hahaObject调用了hahaMethod这个函数
//{hahaName: "l名字", hahaMethod: ƒ}
-
如果对象中的函数被赋值给了一个变量
var hahaObject = { hahaName:'l名字', hahaMethod:function(){ console.log(this) } } var a = hahaObject.hahaMethod a() // window
函数是个单独的值,所以函数可以在不同的环境中执行
函数hahaMethod在栈中其实存的就是指向内存的一个地址
这个内存存了
函数hahaMethod赋值给了a这个变量
a获得函数hahaMethod的地址
a就变成了window对象下的一个函数
GitHub
:book:《web_knowledge_hierarchy》
参考文章
-
this
是个对象,对象存在栈
里的只是一个指向内存
的地址
↩