在js中设置变量值时可以获取变量名吗?
像这样的东西:
var js = '<span id="'+ ::self.name +'"></span>';
所以它会是
js = '<span id="js"></span>';
上下文并不重要,我知道很多更长的方法可以做到这一点,但使用最短的方法可能会很棒。
在js中设置变量值时可以获取变量名吗?
像这样的东西:
var js = '<span id="'+ ::self.name +'"></span>';
所以它会是
js = '<span id="js"></span>';
上下文并不重要,我知道很多更长的方法可以做到这一点,但使用最短的方法可能会很棒。
嗯 - 我能想到的最接近的事情是通过模板创建:
//using this small template js code
if (!String.prototype.supplant) {
String.prototype.supplant = function (o) {
return this.replace(/{([^{}]*)}/g,
function (a, b) {
var r = o[b];
return typeof r === 'string' || typeof r === 'number' ? r : a;
}
);
};
}
var spanTmpl= '<span id="{id}"></span>';
var a= spanTmpl.supplant({id:"js"});
var b= spanTmpl.supplant({id:"bla"});
console.log(a); //<span id="js"></span>
console.log(b);//<span id="bla"></span>
不,您需要在 js-object 中定义一个属性 - 即名称属性。
可以做相反的事情:您可以使用名称调用 JS 对象。
例如:
var propName = "prop";
var prop = "value";
console.log(window[propName]) // => will output "value"
编辑:您是否曾经查看过诸如 Backbone 或 KnockoutJS 之类的库?我不确定你在做什么,但我最好的猜测是你正在构建那些库已经提供的功能......