关于编写一个通用的事件绑定函数

来源:8-1 事件绑定和事件冒泡

meimei1314

2020-03-14

您好,老师。关于事件监听函数,我有一个疑问。

Function.prototype.bindEvent = function(type, fn) {
	var element = this;
	return element.addEventListener(type, fn);
}
var btn = document.getElementById('btn');
btn.bindEvent('click', function() {})

以上的代码会报错,btn.bindEvent is not a function。

Object.prototype.bindEvent = function(type, fn) {
	var element = this;
	return element.addEventListener(type, fn);
}
var btn = document.getElementById('btn');
btn.bindEvent('click', function() {})

如果把bindEvent挂在在Object.prototype上面的话,不会报错,会正常运行。
老师,请问这是为什么呢?

写回答

1回答

双越

2020-03-14

通过一个方式给你提示一下。知道以下的区别,应该就能想到你题目中的区别。

btn instanceof Object // true
btn instanceof Function // false


0
0

BAT大牛带你横扫初级前端JavaScript面试(第二版)

BAT高级前端工程师亲授,结合真实面试题,提高面试成功几率

4268 学习 · 817 问题

查看课程