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 相关文章推荐
splice slice区别
Oct 09 Javascript
js实现运行代码需要刷新的解决方法
Aug 18 Javascript
js wmp操作代码小结(音乐连播功能)
Nov 08 Javascript
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
查询json的数据结构的8种方式简介
Mar 10 Javascript
js换图片效果可进行定时操作
Jun 09 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
Dec 26 Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 Javascript
浅谈JavaScript面向对象--继承
Mar 20 Javascript
详解如何探测小程序返回到webview页面
May 14 Javascript
vue input输入框关键字筛选检索列表数据展示
Oct 26 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判断变量类型常用方法
2012/04/24 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
基于js中document.cookie全面解析
2017/09/14 Javascript
利用jquery如何从json中读取数据追加到html中
2017/12/01 jQuery
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
python3 logging日志封装实例
2020/04/08 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
高一新生军训感言
2014/03/02 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书