Javascript 有JS“吗;“范围块”;有目标吗?
假设我有这样一个对象:Javascript 有JS“吗;“范围块”;有目标吗?,javascript,Javascript,假设我有这样一个对象: var Root = { A: { AA: ..., AB: ..., AC: function() {} } }; JS中是否有语法支持“范围块”或类似的东西,比如伪代码,这样我就可以调用函数AC()或获取值AB,而不必冗余地写入Root.a 类似这样的东西 (Root.A) { AC(); console.log(AB); } Root.A.AC(); console.log(Root
var Root = {
A: {
AA: ...,
AB: ...,
AC: function() {}
}
};
JS中是否有语法支持“范围块”或类似的东西,比如伪代码,这样我就可以调用函数AC()
或获取值AB
,而不必冗余地写入Root.a
类似这样的东西
(Root.A) {
AC();
console.log(AB);
}
Root.A.AC();
console.log(Root.A.AB);
表示类似的意思
(Root.A) {
AC();
console.log(AB);
}
Root.A.AC();
console.log(Root.A.AB);
如果您正在查找外部对象,则函数内部的该
将引用外部对象
var Root={
A:{
机管局:1234,
AB:‘AB文本’,
AC:函数(){
//这个===根
把这个还给我;
}
}
};
console.log(Root.A.AC())
var Root={
A:{
机管局:1234,
AB:‘AB文本’,
AC:函数(){
//这个===根
把这个还给我;
}
}
};
console.log(Root.A.AC())
目前,没有推荐的实现方法。我们有with
语句,它完全可以满足您的需要,但它会带来性能成本,并且在严格模式下被明确禁止(解释)
如果出于某种原因您绝对需要此功能,您可以将与
一起使用,如下所示:
var Root={
A:{
AA:5,
AB:6,
AC:function(){return 4;}
}
};
使用(Root.A){
控制台日志(AB);
控制台日志(AA);
console.log(AC());
}
目前,没有推荐的方法来实现这一点。我们有with
语句,它完全可以满足您的需要,但它会带来性能成本,并且在严格模式下被明确禁止(解释)
如果出于某种原因您绝对需要此功能,您可以将与
一起使用,如下所示:
var Root={
A:{
AA:5,
AB:6,
AC:function(){return 4;}
}
};
使用(Root.A){
控制台日志(AB);
控制台日志(AA);
console.log(AC());
}
在某些版本(我认为是ES6)中,您可以使用解构赋值并编写如下内容:
const {AA, AB, AC} = Root.A;
AC();
console.log(AB);
如果这有帮助的话。在(ES6)的某个版本中,您可以使用一个解构赋值并编写如下内容:
const {AA, AB, AC} = Root.A;
AC();
console.log(AB);
如果这有帮助的话。您正在寻找,但这是非常令人沮丧的(正如文档所解释的)。为什么您有“A”?您可以只使用var Root={…}文档似乎主要关注模糊性。更奇怪的是,如果字面上(为了论证)所有的JS功能都包含在Root.A下,那么在这种情况下,它是否消除了将与一起使用的问题?@NoChance表明了这一点,它不是实际的代码obviously@4castle我不知道。谢谢你的提示。删除了标签。您正在寻找,但它非常不受欢迎(正如文档所解释的)。为什么您有“A”?您可以只使用var Root={…}文档似乎主要关注模糊性。更奇怪的是,如果字面上(为了论证)所有的JS功能都包含在Root.A下,那么在这种情况下,它是否消除了将与一起使用的问题?@NoChance表明了这一点,它不是实际的代码obviously@4castle我不知道。谢谢你的提示。删除了标记。是否有任何不使用此标记的原因,如使用的?我能想到的唯一原因是您需要支持javascript早期版本ES6。是否有任何不使用此标记的原因,如使用的?我能想到的唯一原因是您需要支持javascript早期版本ES6。