Javascript 成员函数超出范围

标签 javascript oop scope

我有一个创建 anchor 对象的类。当用户点击 anchor 时,我希望它从父类运行一个函数。

function n()
{
    var make = function()
    {
        ...

        var a = document.createElement('a');    
        a.innerHTML = 'Add';
        //this next line does not work, it returns the error: 
        //"this.add_button is not a function"
        a.onclick = function() { this.add_button(); }                                               

        ...
    }

    var add_button = function()
    {
        ...
    }

}

我怎样才能完成这件事?

最佳答案

看来您只需要去掉“this”即可。在 add_button() 前面

您将 add_button 声明为局部变量(或者以 javascript 类工作的奇怪方式声明为私有(private)),因此它实际上不是“this”的成员。

只需使用:

a.onclick = function(){add_button();}

关于Javascript 成员函数超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1329819/

相关文章:

javascript - 是否有与 html 元素中的 onclick 等效的 css?

javascript - 如何从Controller访问AngularJS上的$scope变量来查看

python - 在 python 中查找实例的所有成员,不包括 __init__

java - Struts2 中 ModelDriven Action 的继承

java - 如何向方法传递 List<Interface> 而不是 List<Class>?

javascript - Django 模板变量在脚本标签中无法识别,但在常规 h1 标签中可识别。是什么原因造成的?

javascript - 惊讶于全局变量在 JavaScript 中具有未定义的值

javascript - 通过 Javascript 计算数组中排列的计数而不重复

javascript - OWIN cookie 身份验证在客户端获取角色

javascript - 为什么我的 mouseOver 功能不起作用?