js中this指向的理解
this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁。如果一个函数中有this,这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象
例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<script>
var a =
{
name:'贝加尔湖畔',
fn:function()
{
console.log(this.name); //贝加尔湖畔
console.log(this); //a
}
}
a.fn();
//fn 被 a 调用
var b = function()
{
name:'贝加尔湖畔'
console.log(this.name); //undefine
console.log(this);//window
}
b();
//函数b实际是被Window对象所点出来的
var c = {
price:10,
bo:{
price:12,
fn:function()
{
console.log(this.price);// 12
console.log(this);// bo
}
}
}
c.bo.fn();
// 这个函数中包含多个对象,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象
</script>
</div>
</body>
</html>