Javascript 从变量访问元素属性
我有一个函数:Javascript 从变量访问元素属性,javascript,variables,properties,Javascript,Variables,Properties,我有一个函数: this.addNode = function(element){ var context = this.obj.element; return context; } 而this.obj是一个具有某些属性的对象。当我想从上述变量调用这些属性时,如何访问它们?我需要做一些假设,因为示例并不完全清楚。假设您在构造函数中有此代码,并且希望引用此对象的obj.,那么您不能使用,而是像这样使用[] function SomeObj()
this.addNode = function(element){
var context = this.obj.element;
return context;
}
而this.obj是一个具有某些属性的对象。当我想从上述变量调用这些属性时,如何访问它们?我需要做一些假设,因为示例并不完全清楚。假设您在构造函数中有此代码,并且希望引用此对象的
obj.
,那么您不能使用
,而是像这样使用[]
function SomeObj() {
this.obj = { a: 1, b: 2 };
this.addNode = function (element) {
var context = this.obj[element];
return context;
}
}
var o = new SomeObj();
o.addNode('a'); // returns 1
o.addNode('b'); // returns 2
function SomeObj() {
var obj = { a: 1, b: 2 };
this.addNode = function (element) {
var context = obj[element]; // not using this.obj
return context;
}
}
你可以这样使用它
function SomeObj() {
this.obj = { a: 1, b: 2 };
this.addNode = function (element) {
var context = this.obj[element];
return context;
}
}
var o = new SomeObj();
o.addNode('a'); // returns 1
o.addNode('b'); // returns 2
function SomeObj() {
var obj = { a: 1, b: 2 };
this.addNode = function (element) {
var context = obj[element]; // not using this.obj
return context;
}
}
但通常建议像这样隐藏实现(即obj
属性)
function SomeObj() {
this.obj = { a: 1, b: 2 };
this.addNode = function (element) {
var context = this.obj[element];
return context;
}
}
var o = new SomeObj();
o.addNode('a'); // returns 1
o.addNode('b'); // returns 2
function SomeObj() {
var obj = { a: 1, b: 2 };
this.addNode = function (element) {
var context = obj[element]; // not using this.obj
return context;
}
}
如果将obj
作为参数传递给构造函数,则更简单:
function SomeObj(obj) {
this.addNode = function (element) {
var context = obj[element]; // not using this.obj
return context;
}
}
var o = new SomeObj({ a: 1, b: 2 });
o.addNode('a'); // returns 1
o.addNode('b'); // returns 2
我希望我猜对了问题。关于如何访问对象属性的问题太基本了。请参考JS参考手册。您的代码似乎不正确。你想做什么?我知道如何访问propoerty,但是当我尝试通过变量名(如上面的-‘element’变量)访问时,变量没有发送到函数,并且它是未定义的。这只是代码的一部分,this.obj是一个json对象,我想调用相应的属性从变量调用。