我想了解如何在对象声明中获取变量名称。 更容易描述这个问题是一个例子,所以:
function MyObject (){
this.NeedToKnow = "";
this.getLink = function() {
html = '<a href="javascipt:' +this.NeedToKnow+'.doIt(passVal) ">M</a>';
return html;
}
this.doIt = function(passVal) {
//do stuff
}
}
varNeedToKnow = new MyObject ();
var html = varNeedToKnow .getLink();
所以我的问题是,如何找出“varNeedToKnow”来填充this.NeedToKnow里面的对象?
甚至可能吗?
答案 0 :(得分:1)
我会略微区别对待它,从而更直接地与DOM /事件处理程序进行交互。这样做不需要公开对象范围之外的函数名称,因为click事件现在直接绑定到函数本身。
function MyObject (){
this.getLink = function() {
var a = document.createElement('a');
a.innerHTML = 'MyLink';
if(a.addEventListener) {
a.addEventListener('click', this.doStuff, false);
} else {
a.attachEvent('onclick', this.doStuff);
}
return a;
};
this.doStuff = function(passVal) {
//do stuff
};
}
var varNeedToKnow = new MyObject ();
var element = varNeedToKnow.getLink();
//element now contains an actual DOM element with a click event bound to your doStuff function