【发布时间】:2016-01-25 16:17:16
【问题描述】:
我有一个用于创建元素的速记函数,它接受一个标签名称和一个对象字面量。
//create element
function $make(tag, parameters) {
var o = document.createElement(t);
if (p.style) o.style.cssText = p.style;
if (p.class) o.className = p.class;
if (p.text) o.textContent = p.text;
return o;
}
你说的很简单:
var e = $make('div', {style: 'float: left', class: 'myClass', text: 'Some Text'});
我想使用属性中的关键字符前缀来设置属性,而不是为每个单独的属性设置检查。例如,如果我想为链接设置href,我可能会调用:
var e = $make('a', {style: 'float: left', text: 'Google', ~href: 'https://www.google.com'});
如何遍历对象文字的属性并检查属性本身的名称(不是值)是否以特定字符或字符串开头?这甚至可能吗?如果没有,您会推荐什么替代方案?
【问题讨论】:
-
请注意,您的函数只需要一个对象。该对象可能是使用 object literal syntax (
{ ... }) 定义的,或者它可能已经以其他方式定义(例如,new Object(),或者它可能是某种类型的Object) . “字面量”是指对象在代码中的词法指定方式;对象创建后与对象无关。 -
@apsillers 虽然在这种情况下确实如此,但 JS 中的其他文字并不总是如此;示例:(
"my string" instanceof String === false)
标签: javascript key object-literal