dojo.setObject中文文档
dojo.setObject
用法
示例
参见
根据一个由点号分隔 ‘.’ 的字符串, 例如, “A.B.C” 来设置一个对象属性。
用法?
在 javascript中, 一个点号分隔的字符串例如 Obj.parent.child 表示,在Obj对象中有一个parent属性,parent属性又有一个child属性。
setObject 让你设置该child属性的值,并且如果该属性的父对象不存在将会自动创建其父对象(parent对象)。
如果没有 dojo.setObject 方法,我们可能会经常看到下面这样的代码段:
// 在设置某个属性前需要检测这个属性所属的对象都必须存在
if(!obj["parent"]){ obj.parent = {}; }
if(!obj.parent["child"]){ obj.parent.child= {}; }
// 现在可以安全的设置某个属性了
obj.parent.child.prop = "some value";
而使用 dojo.setObject, 我们可以把上述代码简化成一句:
dojo.setObject("parent.child.prop", "some value", obj);
示例?
<script>
dojo.require("dijit.form.Button");
// 这个对象开始是个空对象,我们将用 setObject 来填充它的属性
var obj = {};
console.log("in head");
</script>
<p>Click button to insert nested value into obj</p>
<button dojoType="dijit.form.Button">
<script type="dojo/method" event="onClick">
dojo.setObject('x.y.z', "hi!", obj);
dojo.byId('resultDiv').innerHTML = dojo.toJson(obj, true);
</script>
x.y.z
</button>
<button dojoType="dijit.form.Button">
<script type="dojo/method" event="onClick">
dojo.setObject('p.d.q', "world!", obj);
dojo.byId('resultDiv').innerHTML = dojo.toJson(obj, true);
</script>
p.d.q
</button>
<p>Obj:</p>
<div id="resultDiv">
{}
</div>