Javascript 根据obj键执行功能
是否可以根据Javascript 根据obj键执行功能,javascript,Javascript,是否可以根据obj1 obj2 obj3键编写一些代码来执行功能 示例1obj1然后执行function a() 示例2obj2然后执行函数a()和函数c() 示例3obj3然后执行函数b()和函数c() 我看到一些包总是创建新对象并在第二个参数中传递对象 例如:let test=newb('test',{a:10,B:20}) (B是一个班级) 这看起来像是基于对象键执行某个操作。您在这里的最佳选择(排除可能建议完全不同方法的更多上下文)是将这些函数放入对象或映射中,然后将属性名称用作该对象或
obj1 obj2 obj3
键编写一些代码来执行功能
示例1obj
1然后执行function a()
示例2obj2
然后执行函数a()
和函数c()
示例3obj3
然后执行函数b()
和函数c()
我看到一些包总是创建新对象并在第二个参数中传递对象
例如:let test=newb('test',{a:10,B:20})代码>
(B是一个班级)
这看起来像是基于对象键执行某个操作。您在这里的最佳选择(排除可能建议完全不同方法的更多上下文)是将这些函数放入对象或映射中,然后将属性名称用作该对象或映射中的键来进行调用:
const函数={
(){
console.log('a');
},
b(){
console.log('b');
},
c(){
console.log('c');
}
};
设obj1={a:1};
设obj2={a:1,c:1};
设obj3={b:1,c:2};
函数调用obj(标签,obj){
控制台日志(标签);
for(对象的常量键。键(obj)){
功能[键]();
}
}
callForObj(“obj1:,obj1”);
callForObj(“obj2:”,obj2);
callForObj(“obj3:,obj3”)你能详细说明一下吗?在我看来,您要求的是if
。但这并不保证在c
之前调用a
,因为对象不保证顺序,是吗?我想我误解了这个问题。看来顺序并不重要。@schroffl-啊,这是一个好观点,我并没有真正意识到顺序在问题中的重要性(我可以从两个方面来理解)。对象现在确实有顺序(从ES2015开始),甚至对于像Object.keys
(从ES2020开始)这样的较旧操作也是如此,因此在现代JavaScript引擎中,上述对象保证在c
之前调用a
。但使用这种顺序很少有用或合适;如果顺序很重要,最好使用数组。@schroffl。关于财产顺序的问题,里面几乎没有不值得一读的东西。@ASDFGerte-Oriol对这个问题的回答现在已经过时了。(这取决于你想变得多么学究,因为问题是“ES6是否引入…”:-)ES2020使其甚至适用于Object.keys
等。)
function a() {
console.log('a');
}
function b() {
console.log('b');
}
function c() {
console.log('c');
}
let obj1 = {a:1}
let obj2 = {a:1, c:1}
let obj3 = {b:1, c:2}