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!",true); </script> p.d.q </button> <p>Obj:</p> <div id="resultDiv"> {} </div> 原文链接:https://www.f2er.com/dojo/291713.html