javascript中的with语句学习笔记及用法


Posted in Javascript onFebruary 17, 2020

在JS中,with 语句的作用是将代码的作用域设置到一个特定的对象中。其语法如下:with (expression) statement;

定义 with 语句的目的主要是为了简化多次编写同一个对象的工作,如下面的代码:

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

上面几行代码都包含 location 对象。如果使用 with 语句,可以把上面的代码改写成如下所示:

with(location){
 var qs = search.substring(1);
 var hostName = hostname;
 var url = href;
}

下面的代码使用 with 语句关联了 location 对象。这意味着在 with 语句的代码块内部,每个变量首先被认为是一个局部变量,而如果在局部环境中找不到该变量的定义,就会查询

location 对象中是否有同名的属性。如果发现了同名属性,则以 location 对象属性的值作为变量的值。

大量使用with非常耗性能,而且在严格模式下使用with语句会报错。所以建议没什么 必要不要用with语句

实例扩充

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>With语句(类似于VB中的)</title>
<script type="text/javascript">
 function Student(name, age) {
  this.name = name;
  this.age = age;
 }
 var stu = new Student('罗纳尔多', 36);
 with (stu) {
  //With语句(类似于VB中的),用于简化代码
  alert("Name:" + name + ",Age:" + age);
 }
</script>
</head>
<body>
</body>
</html>

以上就是三水点靠木小编整理分享的全部知识点内容,感谢大家的支持。

Javascript 相关文章推荐
JQuery与Ajax常用代码实现对比
Oct 03 Javascript
一个收集图片的bookmarlet(js 刷新页面中的图片)
May 27 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
详解JavaScript中的客户端消息框架设计原理
Jun 24 Javascript
自制微信公众号一键排版工具
Sep 22 Javascript
AngularJS通过$location获取及改变当前页面的URL
Sep 23 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
vue init webpack 建vue项目报错的解决方法
Sep 29 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
微信小程序选择图片控件
Jan 19 Javascript
解析原生JS getComputedStyle
May 25 Javascript
原生JavaScript实现简单五子棋游戏
Jun 28 Javascript
JS实现百度搜索框关键字推荐
Feb 17 #Javascript
js实现百度淘宝搜索功能
Feb 17 #Javascript
JavaScript使用canvas绘制随机验证码
Feb 17 #Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 #Javascript
Vue 中使用 typescript的方法详解
Feb 17 #Javascript
vue框架中props的typescript用法详解
Feb 17 #Javascript
JS通用方法触发点击事件代码实例
Feb 17 #Javascript
You might like
世界上第一台立体声收音机
2021/03/01 无线电
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
Pyhton中防止SQL注入的方法
2015/02/05 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python中 * 的用法详解
2019/07/10 Python
基于python实现把图片转换成素描
2019/11/13 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
python实现KNN近邻算法
2020/12/30 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
QA工程师岗位职责
2013/11/20 职场文书
竞职演讲稿范文
2014/01/11 职场文书
电子专业自荐信
2014/07/01 职场文书
幼儿学前班评语
2014/12/29 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
情感电台广播稿
2015/08/18 职场文书
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技