【发布时间】:2022-01-12 11:49:49
【问题描述】:
我知道如何检查属性是否存在(hasOwnProperty、in、!== undefined 等)。
但如果它不存在,我不知道如何避免对该属性执行操作。
是否有解决方案可以避免每次验证if(在我的情况下为property && action)?
类似问题:Javascript - how to avoid multiple if condition checks when checking if object has a property? 与我的情况无关
const myFunction1 = myFunction2 = () => {};
const generateElement = (p) => {
let div = document.createElement(p.tag);
p.classes && (div.className = p.classes);
p.style && (div.style.cssText = p.style);
p.content && (div.innerHTML = p.content);
p.appendIn && p.appendIn.appendChild(div);
p.attribs && Object.entries(p.attribs).forEach((y) => {
div.setAttribute(y[0], y[1]);
});
p.events && Object.entries(p.events).forEach((y) => {
div.addEventListener(y[0], y[1], false);
});
return div
}
var newElem = generateElement({
tag: 'div',
classes: 'mydiv',
id: 'id42',
content: 'Hello world!',
style: 'background:#ccc',
attribs: {
'tabindex': 0,
'title': 'Title #1'
},
events: {
'click': myFunction1,
'mouseout': myFunction2
},
appendIn: document.body
});
【问题讨论】:
-
考虑使用 Object.keys 然后遍历键,这样您就只能访问自己的属性。
-
也是一个简单的 if,保存 && 并且更具可读性
标签: javascript object properties conditional-statements hasownproperty