Javascript 为什么不是';我的回调没有被调用吗?

Javascript 为什么不是';我的回调没有被调用吗?,javascript,callback,Javascript,Callback,给定这段代码,我的回调在Dom中是可见的,如下所示 var handler = new Handler(); var iife = (function() { return { doAlert: doAlert }; function doAlert() { alert('testing'); } })(); function Bar(){ this.doFirst = function(){ handler.ad

给定这段代码,我的回调在Dom中是可见的,如下所示

var handler = new Handler();

var iife = (function() {
    return {
        doAlert: doAlert
    };

    function doAlert() {
        alert('testing');
    }
})();

function Bar(){
  this.doFirst = function(){
    handler.add("x", iife.doAlert);
  }
}

function Handler(){
  this.add = function(caption, callback){
    var linkText = document.createTextNode(caption);
    var href = document.createElement("a");
    href.appendChild(linkText);
    href.setAttribute("href", "#");
    href.setAttribute("onclick", callback);

    $(".bc").append(href);
  }
}

这实际上在我的
onclick
属性中。显然这不是我想要的。我需要做什么才能显示我的警报?我希望看到类似于
doAlert()
,为什么不是这样呢?

属性值是字符串。由于要传递函数,因此会隐式调用其
.toString()
方法来设置
onclick
的属性值

切勿使用
onclick
属性


属性值是字符串。由于要传递函数,因此会隐式调用其
.toString()
方法来设置
onclick
的属性值

切勿使用
onclick
属性

function doAlert() {
    alert('testing');
}
href.addEventListener("click", callback);