JavaScript中的this妙用实例分析


Posted in Javascript onMay 09, 2020

本文实例讲述了JavaScript中的this妙用。分享给大家供大家参考,具体如下:

JavaScript关键字this始JS脚本能够根据使用这个关键字的上下文将值传递给函数。

我们先来看如下一个网页,在用户单击链接之后,弹出一个alert框,然后再转到href属性所指的网页

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript中的this妙用</title>
  <script type="text/javascript" src="js/script.js"></script>
</head>
<body>
  <p style="text-algin:center;">
    你好,点击这里去<a id="redirect" href="http://www.mybry.com/obj/store/list.html" rel="external nofollow" >旧物商店</a>
  </p>
</body>
</html>

JS:

window.onload = initAll;
function initAll(){
  document.getElementById("redirect").onclick = initRedirect;
}
function initRedirect(){
  alert("这是我创建的旧物商城,欢迎访问!");
  window.location = this;
  return false;
}

你可能会主要到,代码中并没有引用特定的网页——这是this关键字的作用之一。this替我们完成的工作之一是从HTML链接获得URL(也就是a标签的href属性)。由于采用这种方式,如果以后脚本改为指向其他的页面而不是旧物商店页面,就不必修改JS。实际上,可以让WEB站点上的所有链接都调用这个相同的JS代码,这一行代码都会自动获得相应的href值。

这样写还有一个好处:如果用户的浏览器不理解JavaScript(比如禁用了JS),那么它只会加载HTML页面,而不显示alert提示,当他们点击链接时,会像一般情况下那样加载页面,不会发生错误,没有任何问题。
我们在来看一个switch/case例子,创建如下页面:

JavaScript中的this妙用实例分析

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript中的this妙用</title>
  <script type="text/javascript" src="js/script.js"></script>
</head>
<body>
  <h2>闲置二手图书</h2>
  <form action="#">
    <input type="button" id="Java" value="Java" />
    <input type="button" id="JavaScript" value="JavaScript" />
    <input type="button" id="MySQL" value="MySQL" />
    <input type="button" id="Html" value="HTML5" />
  </form>
</body>
</html>

JS:

window.onload = initAll;
function initAll(){
  document.getElementById("Java").onclick = viewDetail;
  document.getElementById("JavaScript").onclick = viewDetail;
  document.getElementById("MySQL").onclick = viewDetail;
  document.getElementById("Html").onclick = viewDetail;
}
function viewDetail(){
  console.log("this.id="+this.id);
  switch(this.id){
    case "Java" : 
      alert("《Java程序员基本功》这本书是李刚写的,在我的商店售价30元!");
      break;
    case "JavaScript" : 
      alert("《JavaScript语言精粹》这本书是Yahoo的一位工程师写的,在我的商店售价15元!");
      break;
    case "MySQL" : 
      alert("《MySQL入门很简单》这本书附带关盘,这个年代其实没什么卵用了,它在我的商店售价28元!");
      break;
    case "Html" : 
      alert("《HTML5秘籍》这本书是图灵系统的图书,非常值得拥有,它在我的商店售价25元,卖的非常好!");
      break;
    default : 
      alert("没有这本书");
  }
}

直接用this.id作为switch的参数也是可以的。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
一个网马的tips实现分析
Nov 28 Javascript
JavaScript window.document的属性、方法和事件小结
Oct 24 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
Feb 20 Javascript
jQuery异步提交表单实例
May 30 jQuery
js+html获取系统当前时间
Nov 10 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
JS 创建对象的模式实例小结
Apr 28 Javascript
js实现头像上传并且可预览提交
Dec 25 Javascript
JavaScript中继承原理与用法实例入门
May 09 #Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 #jQuery
JavaScript进阶(四)原型与原型链用法实例分析
May 09 #Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 #Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
May 09 #Javascript
JavaScript进阶(一)变量声明提升实例分析
May 09 #Javascript
JavaScript面向对象核心知识与概念归纳整理
May 09 #Javascript
You might like
php以post形式发送xml的方法
2014/11/04 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
json 定义
2008/06/10 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
Django Highcharts制作图表
2016/08/27 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python文件操作函数用法实例详解
2019/12/24 Python
pycharm快捷键汇总
2020/02/14 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
python实现KNN近邻算法
2020/12/30 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
矫正人员思想汇报
2014/01/08 职场文书
搞笑老公保证书
2015/02/26 职场文书
借条如何写
2015/05/26 职场文书
导游词之崇武古城
2019/10/07 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers