with (expression) statement;
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href;
with (location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}
function func() {
console.time("func");
var obj = {
a: [1, 2, 3]
};
for (var i = 0; i < 100000; i++) {
var v = obj.a[0];
}
console.timeEnd("func");//0.847ms
}
func();
function funcWith() {
console.time("funcWith");
var obj = {
a: [1, 2, 3]
};
var obj2 = { x: 2 };
with (obj2) {
console.log(x);
for (var i = 0; i < 100000; i++) {
var v = obj.a[0];
}
}
console.timeEnd("funcWith");//84.808ms
}
funcWith();
function funcWith() {
console.time("funcWith");
var obj = {
a: [1, 2, 3]
};
with (obj) {
for (var i = 0; i < 100000; i++) {
var v = a[0];
}
}
console.timeEnd("funcWith");//88.260ms
}
funcWith();
function foo(obj) {
with (obj) {
a = 2;
}
}
var o1 = {
a: 3
};
var o2 = {
b: 3
};
foo(o1);
console.log(o1.a); // 2
foo(o2);
console.log( o2.a ); // undefined
console.log( a ); // 2
var obj = {
x: 10,
foo: function () {
with (this) {
var x = 20;
var y = 30;
console.log(y);//30
}
}
};
obj.foo();
console.log(obj.x);//20
console.log(obj.y);//undefined
var obj = {
x: 10,
foo: function () {
var x;//声明局部变量x
var y;//声明局部变量y
with (obj) {
x = 20;//访问变量x,在obj上找到x,则修改为20
y = 30;//访问变量y,在bojg上找不到y,则进一步查找,找到局部变量y,修改为30
console.log(y);//30//直接输出局部变量y,
}
}
};
obj.foo();
console.log(obj.x);//20,obj.x已被修改为20
console.log(obj.y);//undefined,obj不存在y属性,则为undefined
({
x: 10,
foo: function () {
function bar() {
console.log(x);
console.log(y);
console.log(this.x);
}
with (this) {
var x = 20;
var y = 30;
bar.call(this);
}
}
}).foo();
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有