如何获取set javascript'class'的指定变量名称

时间:2014-02-03 16:08:50

标签: javascript class

如果我指定

displayUL = new displayListMaker({{ $displays }});

如果可能的话,如何获得变量displayUL

var displayListMaker = function(displays){

this.self = wantthevariable

所以我可以生成自称为

的html
return '<a onclick="'+this.self+'.callAFunc(withdata)">call myself :)</a>'

1 个答案:

答案 0 :(得分:1)

你无法获得最终将在构造函数中引用对象的变量的名称,因为最终可能会有多个对同一对象的引用,所以它怎么知道要使用哪个?

如果这是一个内联处理程序属性,那么无论如何具有局部变量的名称都无关紧要,因为处理程序体在全局变量范围内执行。


如果displayUL变量是全局的,一个解决方案可能是将全局名称传递给构造函数,并让它在那里添加全局变量,并将名称编码到字符串中。

new displayListMaker($displays, "displayUL");

var displayListMaker = function(displays, name) {
    window[name] = displays;

    '<a onclick="' + name + '.callAFunc(withdata)">call myself :)</a>'
    // ...and so on

虽然我冒昧地猜测你的问题完全围绕着onclick="..."属性。直接创建DOM元素并使用elem.onclick = func...属性,同时保持对对象的闭包引用可能是您真正需要的。

new displayListMaker($displays);

var displayListMaker = function(displays, name) {
    var that = this;

    var elem = document.createElement("a")
    elem.innerHTML = "call myself :)"

    elem.onclick = function() {
        that.callAFunc(withdata);
    }
    // ...and so on