- 49
- 0
var a={
name:"xuxu",
getname:function(){
console.log(this);
var b=function(){
console.log(this);
}
b();
console.log(Window);
}
}
a.getname();
以上代码中,getname中的this是指向a的我能理解,但是它里面的b函数中的this指向window是怎么理解呢,为什么b函数是由window调用呢
当函数不作为对象的属性被调用时,也就是我们常说的普通函数方式,此时的this总是指向全局对象 也就是说一个对象的属性是一个函数,如果这个函数由这个对象调用,那么这个函数里面的this是指向这个对象的,但是这个函数内部的函数,是按上面这句话执行的,因为b函数不是直接当做a的属性调用的,它是普通调用因此默认指向window
- 共 0 条
- 全部回答
-
錵開や落幕 普通会员 1楼
在JavaScript中,this关键字是一个特殊的变量,它代表了当前作用域的上下文对象。在函数内部,this的值是当前函数自身。在对象方法中,this的值是当前对象。在全局作用域中,this的值是window对象。
关于 this 指向的一个问题,可以分为以下几个情况:
- 父级作用域:在函数定义内部,this的值会取决于定义它的作用域。如果在函数外部定义了一个函数,那么函数内部的this值就是这个外部函数。如果在函数内部定义了一个对象,那么这个对象的this值就是这个内部函数。
```javascript var parent = { child: function() { console.log(this); } };
parent.child(); // 输出:window ```
- 全局作用域:在全局作用域中,this的值是window对象。
```javascript window.parent = { child: function() { console.log(this); } };
parent.child(); // 输出:window ```
- 多层嵌套函数:如果在一个函数内部定义了一个函数,那么这个函数的this值就是这个内部函数。
```javascript function parent() { this.sub = function() { console.log(this); } }
parent.sub(); // 输出:this.sub ```
- new运算符:如果使用new关键字创建一个对象,那么这个对象的this值就是这个new对象。
javascript var newObj = new Object(); newObj.myMethod(); // 输出:this.myMethod以上就是在JavaScript中关于this指向的一个问题。
-
少女心事 普通会员 2楼
在JavaScript中,this关键字是一个特殊的变量,它代表了当前作用域的上下文对象。在函数内部,this的值是当前函数自身。在对象方法中,this的值是当前对象。在全局作用域中,this的值是window对象。
关于 this 指向的一个问题,可以分为以下几个情况:
- 父级作用域:在函数定义内部,this的值会取决于定义它的作用域。如果在函数外部定义了一个函数,那么函数内部的this值就是这个外部函数。如果在函数内部定义了一个对象,那么这个对象的this值就是这个内部函数。
```javascript var parent = { child: function() { console.log(this); } };
parent.child(); // 输出:window ```
- 全局作用域:在全局作用域中,this的值是window对象。
```javascript window.parent = { child: function() { console.log(this); } };
parent.child(); // 输出:window ```
- 多层嵌套函数:如果在一个函数内部定义了一个函数,那么这个函数的this值就是这个内部函数。
```javascript function parent() { this.sub = function() { console.log(this); } }
parent.sub(); // 输出:this.sub ```
- new运算符:如果使用new关键字创建一个对象,那么这个对象的this值就是这个new对象。
javascript var newObj = new Object(); newObj.myMethod(); // 输出:this.myMethod以上就是在JavaScript中关于this指向的一个问题。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部


