首页 > 代码库 > javaScript_with用法
javaScript_with用法
with语句用途
暂时改变作用域链、简化代码。
语法结构
with(object){ //其他语句}
例1
with(person){ name= "zhang"; address.country= "中国"; sex. = "男";}
对应的常规写法是:
person.name = "zhang";person.address.country = "中国";person.sex= "男";
with语句中的优先级
With语句内变量、方法>object对象内变量、方法>全局变量、方法
例2
function a(){ console.log("function_global"); }var b = ‘variable_global‘;var ob = new Object();ob.a = function(){ console.log("function_object");}ob.b = ‘variable_object‘;with(ob){ var a = function(){ console.log("function_local"); } var b = ‘variable_local‘; a(); console.log(b);}
结果:
测试链接:
http://jsfiddle.net/9dnrgjkg/
例3
function a(){ console.log("function_global"); }var b = ‘variable_global‘;var ob = new Object();ob.a = function(){ console.log("function_object");}ob.b = ‘variable_object‘;with(ob){ a(); console.log(b);}
结果:
测试链接:
http://jsfiddle.net/9dnrgjkg/1/
例4
function a(){ console.log("function_global"); }var b = ‘variable_global‘;var ob = new Object();with(ob){ a(); console.log(b);}
结果:
测试链接:
http://jsfiddle.net/9dnrgjkg/2/
替代with语句
执行with语句时,每次需检测with语句中的变量是否属于with包含的对象,因此with语句执行效率不高。为了提高执行效率,建议尽量少使用with语句,可参考例5代替with语句:
例5
var person = new Object();person .name = "lzhang";person .address.country = "中国";person .sex = "男";
javaScript_with用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。