[英]Using “with” in object literal?
是否有可能在javascript中使用“ with”之類的東西-如...
var test = {
vars: {
customer: {
Name: '',
Address: '',
Town: ''
}
},
Init: function () {
with this.vars.customer {
Name = 'Mike';
Address = 'Union Square 2';
Town = 'San Francisco';
}
}
}
?
謝謝
更新:
我不喜歡這種語法:
Init: function () {
this.vars.customer.Name = 'Mike';
this.vars.customer.Address = 'Union Square 2';
this.vars.customer.Town = 'San Francisco';
}
很亂
this.vars.customer = {
Name: 'Mike';
Address: 'Union Square 2';
Town: 'San Francisco';
}
如果是關於設置屬性的,也許您可以做這樣的事情。 它遠非with
替代品,但它可能有其用途,而且沒有含糊with
。
function mergeObject(obj, into){
for (var key in obj){
if (obj.hasOwnProperty(key)){
into[key] = obj[key];
}
}
}
var o = {test: 'Hello', test2: 'world'};
// Add/set properties to o.
mergeObject({foo: 'foo', bar: 'FOO'}, o);
alert(o.test + o.foo);
JavaScript中的“ with”關鍵字是IS。
不建議這樣做,因為如果不小心,它會創建模糊的變量作用域。 我認為這里給出的其他答案是更好的JS編碼實踐
用法示例
x = { subObj: {a: 100, b: 200} };
with (x.subObj) {
console.log(a); // should show 100
b = "what"; // should assign x.subObj.b to be "what now"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.