最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

实例讲解JavaScript中的this指向错误解决方法(图文教程)

来源:动视网 责编:小采 时间:2020-11-27 19:48:31
文档

实例讲解JavaScript中的this指向错误解决方法(图文教程)

实例讲解JavaScript中的this指向错误解决方法(图文教程):JavaScript中this指向的处理是令大家普遍头疼的问题,这里我们举一个实例讲解JavaScript中的this指向错误解决方法,需要的朋友可以参考下看如下对象定义:'use strict' var jane = { name : Jane', display : fun
推荐度:
导读实例讲解JavaScript中的this指向错误解决方法(图文教程):JavaScript中this指向的处理是令大家普遍头疼的问题,这里我们举一个实例讲解JavaScript中的this指向错误解决方法,需要的朋友可以参考下看如下对象定义:'use strict' var jane = { name : Jane', display : fun


JavaScript中this指向的处理是令大家普遍头疼的问题,这里我们举一个实例讲解JavaScript中的this指向错误解决方法,需要的朋友可以参考下

看如下对象定义:

'use strict'
var jane = {
 name : ‘Jane',
 display : function(){
 retrun 'Person named ' + this.name;
 }
};

这样能正常调用

jane.display();

下面的调用会出错:

var func = jane.display;
func()
TypeError: Cannot read property 'name' of undefined

因为,this指向已经改变,正确的方式如下:

var func2 = jane.display.bind(jane);
func2()
'Penson named Jane'

所有函数都有其特殊的this变量,如下面的forEach

var jane = {
 name : 'Jane',
 friends: ['Tarzan', 'Cheeta'],
 sayHiToFriends: function(){
 'use strict';
 this.friends.forEach(function(friend) {
 // 'this' is undefined here
 console.log(this.name + ' says hi to '+ friend);
 });
 }
}

调用sayHiToFriends会产生一个错误:

jane.sayHiToFriends()
TypeError: Cannot read property 'name' of undefined

解决方案一:将this保存在不同的变量中

var jane = {
 name : 'Jane',
 friends: ['Tarzan', 'Cheeta'],
 sayHiToFriends: function(){
 'use strict';
 var that = this;
 this.friends.forEach(function(friend) {
 console.log(that.name + ' says hi to '+ friend);
 });
 }
}

解决方案二:利用forEach的第二个参数,它可以给this指定一个值

var jane = {
 name : 'Jane',
 friends: ['Tarzan', 'Cheeta'],
 sayHiToFriends: function(){
 'use strict';
 this.friends.forEach(function(friend) {
 console.log(this.name + ' says hi to '+ friend);
 }, this);
 }
}

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JavaScript创建对象的七种方式(总结,必读)

javascript实现Java中的Map对象功能的(详细解答,附上代码)

JavaScript构造函数及new运算符(重点,必读)

文档

实例讲解JavaScript中的this指向错误解决方法(图文教程)

实例讲解JavaScript中的this指向错误解决方法(图文教程):JavaScript中this指向的处理是令大家普遍头疼的问题,这里我们举一个实例讲解JavaScript中的this指向错误解决方法,需要的朋友可以参考下看如下对象定义:'use strict' var jane = { name : Jane', display : fun
推荐度:
标签: 里面的 教程 js
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top