使用变量名作为其值js的一部分

时间:2013-10-30 12:20:09

标签: javascript variables

在js中设置值时可以获取变量名吗?

像这样:

var js = '<span id="'+ ::self.name +'"></span>';

所以它会是

 js = '<span id="js"></span>';

上下文并不重要,我知道有很多更长的方法可以做到这一点,但使用最短的方法可能会很棒。

2 个答案:

答案 0 :(得分:2)

嗯 - 我能想到的最接近的事情是通过模板创建:

Example

    //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> 

答案 1 :(得分:0)

不,您需要在js-object中定义一个属性 - 即name-property。

可能的做法是:你可以用名字来调用一个JS对象。

例如:

var propName = "prop";
var prop = "value";
console.log(window[propName]) // => will output "value"

编辑: 你有没有看过像Backbone或KnockoutJS这样的图书馆?我不确定你在做什么,但我最好的猜测是你正在构建这些库已经提供的功能......