当HTMLElement.onclick事件--javascript调用时,在其函数中获取对象的属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当HTMLElement.onclick事件--javascript调用时,在其函数中获取对象的属性相关的知识,希望对你有一定的参考价值。
我有几个html元素,我想处理onclick
。在javascript代码中,我定义了具有属性name
和函数whoAreYou()
的原型,它必须是onclick
处理程序。看起来像:
var Somebody = function(name) {
this.name = name;
}
Somebody.prototype.whoAreYou = function() {
console.log("I am " + this.name)
};
var somebody = new Somebody("Gary");
document.getElementById("somebody1").onclick = somebody.whoAreYou;
但this
是指HTML元素而不是somebody
,而不是“我是加里”,它说“我未定义”。
它工作,而whoAreYou
是在构造函数内定义的,但我需要继承性。考虑到name
被转移到whoAreYou
,我如何访问他的Somebody.prototype
?
答案
您可以绑定上下文:
document.getElementById("somebody1").onclick = somebody.whoAreYou.bind(somebody);
要么
document.getElementById("somebody1").onclick = function() {
somebody.whoAreYou()
};
另一答案
您需要在点击时执行whoAreYou
函数:
var Somebody = function(name) {
this.name = name;
}
Somebody.prototype.whoAreYou = function() {
console.log("I am " + this.name)
};
var somebody = new Somebody("Gary");
document.getElementById("somebody1").onclick = function() {
somebody.whoAreYou();
};
<div id="somebody1">click me</div>
以上是关于当HTMLElement.onclick事件--javascript调用时,在其函数中获取对象的属性的主要内容,如果未能解决你的问题,请参考以下文章