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语句的更多相关文章

  1. js中的条件语句

    //js中的条件语句 ; //example1 单分支语句 ){ console.log("你已经不年轻了!"); }else{ console.log("你依然很有活力 ...

  2. js中的循环语句

    js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) {    //statements;} var a=1,b=0; whil ...

  3. JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构

    JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...

  4. 在js中插入html语句

    连上数据库之后,填充数据时往往需要在js中插入html语句 做法是: <body> <div class="modal-body" id="delete ...

  5. JS中的特有语句-for in

    <script> /* *js中特有语句for in *for(变量 in 对象)//对对象进行变量的语句 *{ *} */ var arr = [32,80,65]; for(i in ...

  6. JS中条件判断语句

    用pycharm敲代码时,在.js文件中敲,敲完之后复制代码到浏览器的console中去回车执行 1.if(  ){} 2.switch(a){} 3.for循环 循环列表 循环字典 循环字符串 另外 ...

  7. JS中的if语句内如何加or使多个条件通过

    if(a==1&&b==2){ //do something }//条件是a等于1  并且  b等于2时才能成立,两个条件必须同时满足 if(a==1||b==2){ //do som ...

  8. js中特有语句-with

    <script type="text/javascript"> /* *为了简化对象调用内容的书写. *可以用js中的特有语句with来完成. *格式 *with{ * ...

  9. JS中 计算器的简单制作

    今天学习的是JS中的if语句,除此之外老师还教给我们switch语句的用法, 我们用来写了简单计算器的算法,如下: <script> var a=prompt("请输入一个数字& ...

随机推荐

  1. Hello world S.B.S.

    #include <iostream> #include <conio.h> #include<cstdio> #include<cstring> #i ...

  2. 测试思考[持续更新ing]

    1.如何设计好的测试用例,提高测试覆盖率?提高测试效率? 2.如何展现测试成果? 3.如何编写专业化.优质的测试文档? 4.如何适时借助测试工具,测试一些重复性比较高的测试? 5.如何引入自动化测试? ...

  3. Python中的逗号有什么作用?

    最近研究python  遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说  没有什么不解的地方 就是形参或者实参传递的时候参数之间的逗号 例如def  a ...

  4. FreeMarker 一二事 - 静态模板结合spring展示

    freemarker可以脱离web使用 前一篇文章使用了普通的方法 这回说说结合spring pom额外引入这个jar包 <dependency> <groupId>org.s ...

  5. iOS宏定义

    1.__OBJC__宏定义作用 在.pch 文件中一般都会自动加上这句宏定义,表示宏内引用的文件确保只被使用Objective-C语言的文件所引用,保证引用关系的清晰.因为在一个OC工程中,可能包含. ...

  6. 装了个干净的win7

    lanny的电脑基本信息 我的电脑 联想 ThinkPad T450s 笔记本电脑 操作系统 Windows 旗舰版 64位 主显卡 集成显卡 IE浏览器 版本号 8.0 基本硬件展示 处理器 英特尔 ...

  7. U3D Debug.log的问题

    今天在测试有yield有关的问题时,发现Debug.log()是异步输出机制.不一定会在调用后立即执行. 在C++有类似问题:std::cout 也不一定会立即输出,加上"\n"或 ...

  8. VBA的一些使用心得

    VBA的知识比较零散,因此开一贴记录一下使用VBA时的一些方法和心得.主要针对Excel,参考在这里 1. Collection Class 大部分情况下,Collection Class是比数组(A ...

  9. [Android] emualtor-5554 offline的解决方法

    现象:用adb devices命令总发现emualtor-5554 offline,在.android目录下面并没有发现这个设备,没法删除.原因:有程序占用5555端口,导致adb认为5554不能作为 ...

  10. HoloLens开发手记 - Known issues 已知问题

    本文主要提及一份问题清单,这些问题都可能对我们开发HoloLens应用造成困扰. Visual Studio 在使用VS 2015 Update 1连接HoloLens时,可能会有些小问题.但是这些小 ...