我有一个包含
的Javascript类添加 去掉 移除所有 更新 。 。 。 updateLik 。
功能
在我的Serverside脚本中,有一个像
这样的链接 加现在,如果用户点击DIV,将调用“添加”功能。 add函数又调用updateLink函数。
updateLink将onclick属性替换为“myobject.delete(100)”
现在我的问题是在updateLink函数中我必须硬编码对象名 调用它的删除功能。
有没有办法获取对象名或任何其他解决方案? 感谢
答案 0 :(得分:2)
您可以存储创建对象的上下文的引用,然后在其中搜索,查找实际的实例:
function MyClass() {
this.getVarName = function () {
for (var name in this.scope)
if (this.scope[name] === this)
return name;
}
}
MyClass.prototype.scope = this;
var myObject = new MyClass();
myObject.getVarName(); // returns "myObject"
答案 1 :(得分:0)
最简单的方法是使用eval。
var myObject = eval(myObjectName);
即如果你有一个字符串格式的对象名称。
我还会看一下YUI事件库。它允许您在任何范围内执行任何功能。
答案 2 :(得分:0)
示例:
var x = new YourClass();
var y = x;
问题:您的对象名称是什么? x
或y
?
解决方案:
var x = new YourClass('x'); // and have your class copy the name
或
var x = new YourClass();
x.name = 'x';
答案 3 :(得分:0)
delete
是一个关键字,因此您不能将其与点符号(object.method)一起使用。你必须使用['property'] - 符号(object ['method'])。
var obj = {delete: function(){}}; // throws a syntax error
var obj = {'delete': function(){}}; // works
obj.delete() // throws a syntax error
obj['delete']() // works