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 相关文章推荐
jquery获取img的src值的简单实例
May 17 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
js oncontextmenu事件使用详解
Mar 25 Javascript
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
微信小程序实现文字跑马灯效果
May 26 Javascript
微信小程序实现红包雨功能
Jul 11 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
Dec 13 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
Vue+abp微信扫码登录的实现代码示例
Jan 06 Javascript
Openlayers学习之地图比例尺控件
Sep 28 Javascript
详解JavaScript执行模型
Nov 16 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
php 显示指定路径下的图片
2009/10/29 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
php魔术变量用法实例详解
2014/11/13 PHP
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
详解js中==与===的区别
2017/01/08 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
谈谈如何手动释放Python的内存
2016/12/17 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
python批量处理文件或文件夹
2020/07/28 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
Python实现石头剪刀布游戏
2021/01/20 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
应用英语专业自荐信
2014/01/26 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
企业年度评优方案
2014/06/02 职场文书
企业环保标语
2014/06/10 职场文书
企业介绍信范文
2015/01/30 职场文书
建党伟业的观后感
2015/06/01 职场文书
圆明园观后感
2015/06/03 职场文书
2019个人工作计划书的格式及范文!
2019/07/04 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python