zoukankan
html css js c++ java
javascript改变this指针
今天写代码时遇到一个问题,this指针的问题,先把代码贴上
<
script
type
="text/javascript"
>
window.onload
=
function
()
{
var
m
=
new
main(
'
aaaa
'
);
m.run();
}
var
main
=
function
(param)
{
this
.param
=
param;
this
.run
=
function
()
{
setTimeout(
this
.Change,
3000
);
}
this
.Change
=
function
()
{
alert(
this
.param);
}
}
</
script
>
这个代码看起来很清晰,但是会报错,原因我想大概就是在隔了三秒执行Change方法时找不到this.param,this.Change的this就指向了window,不是实例m了,整了半天没有整明白,没办法只好上网求助,结果有高手给除了解决方法,修改this指针。再来看新代码:
<
script
type
="text/javascript"
>
window.onload
=
function
()
{
var
m
=
new
main(
'
aaaa
'
);
m.run();
}
var
main
=
function
(param)
{
this
.param
=
param;
this
.run
=
function
()
{
var
self
=
this
;
setTimeout(self.Change.setThis(self),
3000
);
}
this
.Change
=
function
()
{
alert(
this
.param);
}
Function.prototype.setThis
=
function
(object)
{
var
__method
=
this
;
return
function
()
{
__method.apply(object, arguments);
}
;
}
;
}
</
script
>
其中添加了一段修改指正的代码,修改指针代码:
Function.prototype.setThis = function(object)
{
var __method = this;
return function()
{
__method.apply(object, arguments);
} ;
};
使用的时候要定义一个变量self=this; 用self来调用。最主要的是不理解apply到底是做啥子用的,只能先记下来,以后慢慢理解!
第八宗罪
Tobin
查看全文
相关阅读:
【今日CS 视觉论文速览】4 Jan 2019
【今日CS 视觉论文速览】3 Jan 2019
【今日CS 视觉论文速览】1 Jan 2019
【机器学习】混淆矩阵及其绘制
【Vim】批量插入注释符号
【今日CS 视觉论文速览】31 Dec 2018
【深度学习风格化/生成艺术】图像融合--毫无违和
CSDN的一些年度大牛(2018)
【今日CS 视觉论文速览】 27 Dec 2018
python与机器视觉(X)打包为exe可执行文件
原文地址:https://www.cnblogs.com/tobin/p/1243514.html
最新文章
shopex模板制作必须注意的要点
快速理解shopex模板机制经验教程(一)
shopex模板开发手册
弹出层 Jquery UI dialog 详解 (中文)
十分巧妙的 对话框组件 artDialog
jQuery dialog plugin jquery 弹出框 漂亮的插件
一周学会Mootools 1.4中文教程
ShopEx4.8为什么不用Jquery而选择Mootools
浅析php后门木马
shopex还是ecshop
热门文章
Django之ORM字段及查询优化
Django之模板层
Django之视图层
Django之路由层
Django之ORM
广域网技术
BGP
Django基础框架简介
Rip
前端基础之JQuery
Copyright © 2011-2022 走看看