js中的with语句
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="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="1" type="text" name="xx" />
<input value="2" type="text" name="age"/>
<!---这里扩展了自己的作用域
form的作用域
以及documen的作用域
---->
点击弹出clickMe12dasb
<input type="button" value="clickMe" onclick="alert(value+age.value+xx.value+c)" />
</form> <script>
/*form扩展的作用域的方式可以看成是;
with(document){
with(this.form){
with(this){ }
}
}
*/
</script>
</body>
</html>
懂了没:略懂略懂....
js中的with语句的更多相关文章
- js中的条件语句
//js中的条件语句 ; //example1 单分支语句 ){ console.log("你已经不年轻了!"); }else{ console.log("你依然很有活力 ...
- js中的循环语句
js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) { //statements;} var a=1,b=0; whil ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- 在js中插入html语句
连上数据库之后,填充数据时往往需要在js中插入html语句 做法是: <body> <div class="modal-body" id="delete ...
- JS中的特有语句-for in
<script> /* *js中特有语句for in *for(变量 in 对象)//对对象进行变量的语句 *{ *} */ var arr = [32,80,65]; for(i in ...
- JS中条件判断语句
用pycharm敲代码时,在.js文件中敲,敲完之后复制代码到浏览器的console中去回车执行 1.if( ){} 2.switch(a){} 3.for循环 循环列表 循环字典 循环字符串 另外 ...
- JS中的if语句内如何加or使多个条件通过
if(a==1&&b==2){ //do something }//条件是a等于1 并且 b等于2时才能成立,两个条件必须同时满足 if(a==1||b==2){ //do som ...
- js中特有语句-with
<script type="text/javascript"> /* *为了简化对象调用内容的书写. *可以用js中的特有语句with来完成. *格式 *with{ * ...
- JS中 计算器的简单制作
今天学习的是JS中的if语句,除此之外老师还教给我们switch语句的用法, 我们用来写了简单计算器的算法,如下: <script> var a=prompt("请输入一个数字& ...
随机推荐
- codeforces 709A A. Juicer(水题)
题目链接: A. Juicer 题意: 给出n个橘子,汁漫出来了就倒出来,反正就是要求要倒几次; 思路: AC代码: #include <iostream> #include <cs ...
- 权限框架 - shiro 授权demo
之前说了权限认证,其实也就是登录验证身份 这次来说说shiro的授权 shiro可以针对角色授权,或者访问资源授权 两者都行,但是在如今的复杂系统中,当然使用后者,如果你是小系统或者私活的话,前者即可 ...
- Linux命令学习-mpstat
mpstat 用于获取多个 CPU 相关统计信息的有用的命令是 mpstat.下面是一个示例输出: # mpstat -P ALL 5 2 Linux 2.6.9-67.ELsmp (oraclera ...
- web安全测试工具的局限性
讨论安全漏洞的原理,谈谈工具的局限. 先说下扫描工具的原理: 扫描工具可以看做由两部分组成:爬虫+校验机构.爬虫的作用是搜集整个被采集对象的链接,然后校验机构对这些链接逐一进行验证. 说扫描工具的局限 ...
- 解决svn的working copy locked并且cleanup恢复不能的情况
产生这种情况大多是因为上次svn命令执行失败且被锁定了. 如果cleanup没有效果的话只好手动删除锁定文件. cd 到svn项目目录下,然后执行如下命令 del lock /q/s 就把锁删掉了.
- java8-1 final
1.final可以修饰类,方法,变量 特点: final可以修饰类,该类不能被继承. final可以修饰方法,该方法不能被重写.(覆盖,复写) final可以修饰变量,该变量不能被重新赋值.因为这个变 ...
- 转: Github访问慢解决办法
from: https://yq.aliyun.com/articles/36744 Github访问慢解决办法 zxiaofan 2016-04-20 17:25:00 浏览2156 评论0 摘 ...
- extjs ajax请求与struts2进行交互
sencha extjs 5 增加一个struts2的配置,这样可以在设置好前台布局之后,与后台交互获取数据显示.现在有一个问题是struts2对于url的跳转action支 持比较良好,但是对于像E ...
- WPF用ShowDialog()弹出窗体时控制该窗体的显示位置,并传值回父窗体
原文:http://blog.csdn.net/kiss0622/article/details/5852153 方法一: 1.父窗口代码 Window1.xaml.cs private void B ...
- performSelector:withObject:afterDelay: 精要概览(持续更新)
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay; - ...