如何将点表示法转换为字符串?

时间:2017-04-25 01:58:42

标签: javascript node.js syntax

我一直在寻找一种使用Javascript将点符号转换为字符串的方法。基本上这就是我要找的东西:

function dotToString(dotNotation){
  return something;
}


dotToString(this.is.just.a.test);
// Would return "this.is.just.a.test"

2 个答案:

答案 0 :(得分:4)

简答:否

长答案:当javascript将参数传递给函数时,它会传入您尝试传入的变量中的值。dotToString函数在任何时候都看不到this.is.just.a.test(它会如果this.is.just.a.test = "blah",请参阅“blah”。这是不可能的。

答案 1 :(得分:1)

是的,您可以使用代理执行此操作。



function makeDotProxy(name) {
  return new Proxy({}, {
    get(target, prop) {
      if (prop === 'valueOf' || prop === 'toString') return () => name;
      if (typeof prop === 'symbol') return Reflect.get(target, prop);
      return makeDotProxy(name + '.' + prop);
    }
  });
}

const This = makeDotProxy('this');
console.log(This.is.a.just.a.test.toString());




但是,你为什么要这样做?