是不是可以在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';
}
非常混乱
答案 0 :(得分:0)
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);
答案 1 :(得分:0)
The "with" keyword是JavaScript。
不建议使用,因为如果不小心,它可能会创建不明确的变量范围。我认为这里给出的其他答案是更好的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"
}