<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> prototype </title>
<script type="text/javascript">
function getInput(name,objID1,objID2){
this.name=name;
this.obj1=objID1;
this.obj2=objID2;
}
getInput.prototype.init = function(){
document.getElementById(this.obj2).onkeyup = (function () {
var wc = this;
return function (event) {
wc.prn(event);
}
}).call(this);
}
getInput.prototype.prn = function(){
alert(document.getElementById(this.obj1).value+"&"+document.getElementById(this.obj2).value);
} window.onload = function () {
var gI = new getInput('gI','inp1','inp2');
gI.init();
}
</script>
</head><body>
<input type="text" id="inp1"/><br/>
<input type="text" id="inp2"/>
</body> </html>中的这段代码是什么意思?
getInput.prototype.init = function(){
document.getElementById(this.obj2).onkeyup = (function () {
var wc = this;
return function (event) {
wc.prn(event);
}
}).call(this);
}
<html xmlns="http://www.w3.org/1999/xhtml"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> prototype </title>
<script type="text/javascript">
function getInput(name,objID1,objID2){
this.name=name;
this.obj1=objID1;
this.obj2=objID2;
}
getInput.prototype.init = function(){
document.getElementById(this.obj2).onkeyup = (function () {
var wc = this;
return function (event) {
wc.prn(event);
}
}).call(this);
}
getInput.prototype.prn = function(){
alert(document.getElementById(this.obj1).value+"&"+document.getElementById(this.obj2).value);
} window.onload = function () {
var gI = new getInput('gI','inp1','inp2');
gI.init();
}
</script>
</head><body>
<input type="text" id="inp1"/><br/>
<input type="text" id="inp2"/>
</body> </html>中的这段代码是什么意思?
getInput.prototype.init = function(){
document.getElementById(this.obj2).onkeyup = (function () {
var wc = this;
return function (event) {
wc.prn(event);
}
}).call(this);
}
解决方案 »
- <embed>使用本地音乐无效果?
- Jquery 如何获取GridView里面的textbox值
- javascript中字符串如何转换为datetime类型
- ajax读取非utf-8编码网页,会出现乱码?查了一些资料,是采用vbscript实现的,有更好的解决办法吗?
- appendChild在IE正常显示,但firefox里不正常
- commanderBar word 文档操作
- radio的问题,求助!!!
- 一个树型结构,返回时,图片变成小点,要点击一下小点才变成图片,代码如下(分不够再给)
- dreamweaver MX 使用时出现的问题、
- 请问怎样响应键盘时间?在线等
- 如何得到iframe里src的值。因为src是可以变动的。谢谢。。
- 请问:如何用js获取状态栏里显示的链接?
function(){
document.getElementById(this.obj2).onkeyup = (function () {
var wc = this;
return function (event) {
wc.prn(event);
}
}).call(this);
}
document.getElementById(this.obj2).onkeyup = (function () {
var wc = this;
return function (event) {
wc.prn(event);
}
}).call(this);
} 每一行代码的意思是什么?
var wc = this;
return function (event) {
wc.prn(event);
}
}).call(this);
-_-||解释的真累,劝楼主还是找本javascript书好好看看基础吧!推荐javascript权威指南
是函数- -(function () {})返回这个函数(function () {})()执行返回的这个函数还有哪行不明白?
其實和我下麵的代碼沒什麽區別
function getInput(name,objID1,objID2){
this.name=name;
this.obj1=objID1;
this.obj2=objID2;
}
getInput.prototype.init=function(){
var This = this;//建立一个闭包变量 做为this的引用
//将this.prn这个function放在这个闭包体内,这样在这个function内就可以访问到This这个this的引用.
this.prn=function()
{
alert(document.getElementById(This.obj1).value+"&"+document.getElementById(This.obj2).value);
}
document.getElementById(this.obj2).onkeyup=this.prn;//该条出错,说为空或不是对象,想知道如何能把input对象以参数形式传入并定义事件等
}
var gI=new getInput('gI','inp1','inp2');
gI.init();
再参考muxrwc的代码
getInput.prototype.init = function(){
document.getElementById(this.obj2).onkeyup = (
//这个function其实是做为一个闭包体存在
function () {
var wc = this;//这个就是我上面的This变量 一样的
//下面这个function才是返回的真正onkeyup的语句柄 它存在于这个闭包内所以可以访问到wc这个this的引用
return function(event){
wc.prn(event);
}
}).call(this);//这个call有点特殊说实在不用也没关系 其实就是吧这个闭包体内的this元素指定为call()的参数,其实还是this.
}
<script type="text/javascript">
(function () {
alert(1);
}).call()
//这个就是执行一个函数
</script>
<script type="text/javascript">
var a = {};
(function () {
alert(a === this);
}).call(a);
//call的第一个参数其实就是改变执行的这个函数的this的
</script>
<script type="text/javascript">
var a = {};
var s = (function () {
var wc = this;
return function () {
alert(1);
};
}).call(a);alert(s);
//执行一个函数。然后返回内容给s
//返回的内容是一个函数是 这个函数function () { alert(1); }
</script>
<script type="text/javascript">
var a = {};
a.name = "back";
var s = (function () {
var wc = this;
return function () {
alert(wc.name); //这里返回的函数,用到了wc这个变量所以产生了闭包
};
}).call(a);alert(s);s(); //这样执行的时候就显示了back
</script>