时间:2021-05-18
看如下对象定义:
'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); }}声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1604错误最终解决方法(iTunesiPhone1604错误解决方法) 出现该问题后将IPHONE关机(POWER+HOME关机),把ITUNES关掉,
本文实例讲述了Python提示[Errno32]Brokenpipe导致线程crash错误解决方法。分享给大家供大家参考。具体方法如下:1.错误现象Thread
错误1:wizard安装最后一页,出现cannotcreateWindowsserviceformysql.error:0错误解决方法:打开命令行输入scdel
本文分析了Python出现segfault错误解决方法。分享给大家供大家参考,具体如下:最近python程序在运行过程中偶尔会引发系统segfault的错误,而
iPad链接电脑,iTunes提示3194错误代码怎么办,网上的办法实际都没法解决掉这个问题,iTunes提示3194未知错误解决方法希望能帮到大家。 问