DOM里面的被调用函数与响应函数

半个菜鸟 2015-07-08 10:22:42
请问,DOM里面,事件的响应函数与被响应函数调用函数,分别是个什么东西呢?区别是什么呢?
function DTevent() {
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++)
{
var input = inputs[i];
input.onblur = inputonblur;//设置inputonblr函数为onblur事件的响应函数
}
}
function inputonblur() {
if(this.value.length<=0)
{//因为inputonblur是onblur的响应函数,而不是被调用函数,所以可以用this来取得发生事件控件的对象
this.style.background = 'red';
}
else
{
this.style.background = 'white';
}
}
今天看一个视频讲到这个,特别是那句"可以用this",我直接被搞晕了,因为底子薄,实在不知道老师表达的确切意思。
所以现在问题有两个,一个是 事件响应函数 与 被响应函数调用的函数 各自的用法是怎样呢?第一个注释那里,
input.onblur = inputonblur;这行代码为什么后面函数名不写()呢?
一个是 这里为什么可以用this?
求解答
...全文
164 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1. 等号左边是属性,右边是一个对象。 javascript 的函数声明,就默认地“同时”创建了一个与函数名同名的对象,因此这里没有显式地 inputonblur 变量的声明和赋值语句就可以使用它。 2. this 在javascript 中有着跟面向对象编程语言完全不同的含义,可以说 this 是一个非常“自由、诡异”的内部属性,调用函数者可以随意在运行时动态指定 this 的具体含义,而不是像像面向对象语言那样保证 this 总是在编译时就指定好的意义。因此,html element所触发 onblur 事件时,在调用函数之时指定了 this 指向“自己”。 这里关键是要理解 javascript 的 this 跟面向对象语言的 this 的根本区别,别让 javascript 的 this 给蒙了。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧