事件处理程序无法访问JavaScript中的对象方法

事件处理程序无法访问JavaScript中的对象方法,javascript,events,object,methods,Javascript,Events,Object,Methods,如何从静态html事件处理程序访问util.log()方法 换句话说,当我单击复选框时,我喜欢调用util.log方法 onclick=“util.log(\'hey\')”试试以下javascript: var util = { log : function(msg){ alert(msg); }; }; 您的util对象不在全局范围内;它隐藏在实用程序对象中。单击处理程序将在全局对象的范围内运行,这就是为什么它根本看不到util 如果无法更改HTML字符串的创建方式,则需要在实用程

如何从静态html事件处理程序访问util.log()方法

换句话说,当我单击复选框时,我喜欢调用util.log方法


onclick=“util.log(\'hey\')”试试以下javascript:

var util = {
 log : function(msg){
  alert(msg);
 };
};

您的
util
对象不在全局范围内;它隐藏在
实用程序
对象中。单击处理程序将在全局对象的范围内运行,这就是为什么它根本看不到
util

如果无法更改HTML字符串的创建方式,则需要在
实用程序
函数之外声明
util
,换句话说,只需在页面中声明以下内容:

 var util = {};
 util.log = function(msg){
  alert(msg);
 };

 var p = document.createElement('p');
 p.innerHTML = '<input type="checkbox" onclick="util.log(\'hey\')" value="1">Check me'; // this part is a legacy code and I have no control over to rewrite it as HTMLObjectElement way
var util={};
util.log=函数(msg){
警报(msg);
};
var p=document.createElement('p');
p、 innerHTML='检查我';//这部分是一段遗留代码,我无法控制以HTMLObjectElement的方式重写它

您是否希望在单击复选框时显示一条提示“嘿”?是的,但最终如何从硬编码事件调用对象方法?
 var util = {};
 util.log = function(msg){
  alert(msg);
 };

 var p = document.createElement('p');
 p.innerHTML = '<input type="checkbox" onclick="util.log(\'hey\')" value="1">Check me'; // this part is a legacy code and I have no control over to rewrite it as HTMLObjectElement way