首页 > 代码库 > js中的with语句
js中的with语句
<style></style>
javascript中的with语句是什么?
with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性。要给对象创建新的属性,必须明确地引用该对象。
看起来不懂吗?
<!DOCTYPE html><html><head> <title>with语句</title></head><body><div id="div0" onclick="a = 1">div</div><script> var eDiv = document.getElementById("div0"); eDiv.a = 0; //因为eDiv下没有b这个属性, 所以b的值变成了window下的属性, 这个没有问题 with(eDiv) { b = 0; }; var obj = { c : 2 }; //因为obj下有c属性, 当我们设置值的时候, c会变成设置obj的c属性; with(obj){ console.log(c); c = 0; }; //输出 obj = { c : 0 } console.log(obj);</script></body></html>
好吧, 我懂了,但是这个with有毛用呢(要特别注意with语句的花括号里面的语句跟this不一样的)?
<!DOCTYPE html><html><head> <title>with语句</title></head><body><script> window.l = function(){console.log( arguments[0] )}; with(location) { l(hostname); l(href) };</script></body></html>
呵呵 ,好像就是少写几个代码的意思么么哒;
(少年, 你好像知道的太多了哦);
说这个有毛用啊, 有没有干货,你这个搞毛的干活, 浪费我的时间呢, 混蛋。
<!DOCTYPE html><html><head> <title>with语句</title></head><body><input id="ipt0" value="http://www.mamicode.com/111" onclick="console.log(value+attributes.hehe.value)" hehe="aiyobucuoo" /><!--输出了 ==>> 111aiyobucuoo --> 卧槽,这个是怎么回事, 没有用到this为什么可以把value直接输出出来啦;</body></html>
js内部对写在行内的onclick处理成了
function(){
with(document){
with(this){
//代码;
}
}
}
情不自禁的感叹, 又长见识了
然后呢?
<!DOCTYPE html><html><head> <title>with语句</title></head><body><script> document.c = "dasb";</script><form> <input value="http://www.mamicode.com/1" type="text" name="xx" /> <input value="http://www.mamicode.com/2" type="text" name="age"/> <!---这里扩展了自己的作用域 form的作用域 以及documen的作用域 ----> 点击弹出clickMe12dasb <input type="button" value="http://www.mamicode.com/clickMe" onclick="alert(value+age.value+xx.value+c)" /></form><script> /*form扩展的作用域的方式可以看成是; with(document){ with(this.form){ with(this){ } } } */</script></body></html>
懂了没:略懂略懂....
js中的with语句
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。