Javascript 如何将点符号转换为字符串?
我正在寻找一种使用Javascript将点表示法转换为字符串的方法。基本上这就是我想要的:Javascript 如何将点符号转换为字符串?,javascript,node.js,syntax,Javascript,Node.js,Syntax,我正在寻找一种使用Javascript将点表示法转换为字符串的方法。基本上这就是我想要的: function dotToString(dotNotation){ return something; } dotToString(this.is.just.a.test); // Would return "this.is.just.a.test" 简短回答:没有 详细回答:当javascript将参数传递给函数时,它会传递您试图传递的变量的值。dotToString函数在任何时候都不会看到
function dotToString(dotNotation){
return something;
}
dotToString(this.is.just.a.test);
// Would return "this.is.just.a.test"
简短回答:没有
详细回答:当javascript将参数传递给函数时,它会传递您试图传递的变量的值。dotToString
函数在任何时候都不会看到this.is.just.a.test
(如果this.is.just.a.test=“blah”
,它会看到“blah”)。这是不可能的。简短回答:不可能
详细回答:当javascript将参数传递给函数时,它会传递您试图传递的变量的值。
dotToString
函数在任何时候都不会看到this.is.just.a.test
(如果this.is.just.a.test=“blah”
,它会看到“blah”)。这是不可能的。是的,您可以使用代理执行此操作
函数makeDotProxy(名称){
返回新的代理({}{
获得(目标、道具){
if(prop=='valueOf'| | prop==='toString')返回()=>name;
if(typeof prop==='symbol')返回Reflect.get(target,prop);
返回makeDotProxy(name+'.'+prop);
}
});
}
const This=makeDotProxy('This');
log(This.is.a.just.a.test.toString())代码>是的,您可以使用代理执行此操作
函数makeDotProxy(名称){
返回新的代理({}{
获得(目标、道具){
if(prop=='valueOf'| | prop==='toString')返回()=>name;
if(typeof prop==='symbol')返回Reflect.get(target,prop);
返回makeDotProxy(name+'.'+prop);
}
});
}
const This=makeDotProxy('This');
log(This.is.a.just.a.test.toString())会引发错误的代码>。。除非实际定义了该路径,并且您将无法获取对象中属性的路径。如果this
或this.is
或this.is.just
etc is未定义
javascript将抛出错误-否则this.is.just.a.test
将导致某些结果(对象或原语)-没有回溯的概念来观察我们是如何到达最终目标的,因为可能有多个“父母”)。。。简而言之,你不能。这几乎可以肯定是一个XY问题。你认为你需要这个的目的是什么?我试图创建一个节点包,允许你用点符号浏览文件系统。因此,最终目标是require(dn(src.script.js))=require(“src/script.js”)dn是一个函数;点表示法用于访问对象的属性。您试图将该表示法用于javascript解析器不支持的目的。这不会起作用。这将引发错误..除非实际定义了该路径,并且无法获取对象中属性的路径。如果this
或this.is
或this.is.just
etc is未定义的javascript将抛出一个错误-否则this.is.just.a.test
将导致某种结果(一个对象或原语)-并且没有回溯的概念来查看我们如何到达这个最终对象,因为可能有多个“父对象”") ... 简而言之,你不能。这几乎可以肯定是一个XY问题。你认为你需要这个的目的是什么?我试图创建一个节点包,允许你用点符号浏览文件系统。因此,最终目标是require(dn(src.script.js))=require(“src/script.js”)dn是一个函数;点表示法用于访问对象的属性。您试图将该表示法用于javascript解析器不支持的目的。这是行不通的。这难道不要求对象本身是代理吗?这不仅仅适用于所有开箱即用的对象。这不能同时是两件事e、 它可以是一个普通对象,工作原理与普通对象类似,也可以是一个特殊对象,在这里使用代理实现,它返回点路径,但不能同时返回点路径。这难道不要求对象本身是代理吗?这不仅仅适用于所有开箱即用的对象。它不能同时是两件事。它可以是一个普通对象,也可以是其工作原理类似于使用代理实现的常规对象或特殊对象,该代理返回点路径,但不能同时返回点路径和点路径。