JS——面向对象实例
来源:互联网 发布:美国国籍 知乎 编辑:程序博客网 时间:2024/06/09 18:36
面向过程的选项卡
<script type="text/javascript"> window.onload = function(){ var oDiv = document.getElementById("div1"); var oBtn = oDiv.getElementsByTagName("input"); var aDiv = oDiv.getElementsByTagName("div"); for (var i = 0 ;i < oBtn.length; i++){ oBtn[i].index = i; oBtn[i].onclick = function(){ //清空内容 for(var i = 0; i < oBtn.length; i++){ oBtn[i].className =''; aDiv[i].style.display = "none"; } //为点击的按钮添加active this.className = "active"; //为对应div加上display:block aDiv[this.index].style.display = "block"; } } }</script><body> <div id="div1"> <input type="button" class="active" value="a"> <input type="button" value="b"> <input type="button" value="c"> <div style = "display: block">aaaa</div> <div>bbbb</div> <div>cccc</div> </div></body>
改写成面向对象
原则:
不能有函数嵌套,但可以有全局变量。
过程:
onload -> 构造函数全局变量 -> 属性函数 -> 方法
实例:
//原来的onload,变成TabSwitch函数,把div的ID作为参数传进去function TabSwitch(id){ var _this = this; //先获取最外层的div var oDiv = document.getElementById(id); //这些全局变量,都变成了TabSwitch对象上的属性 this.oBtn = oDiv.getElementsByTagName("input"); this.aDiv = oDiv.getElementsByTagName("div"); for (var i = 0 ;i < this.oBtn.length; i++){ this.oBtn[i].index = i; this.oBtn[i].onclick = function(){ //下面定义的方法,是在TabSwitch对象上的,所以我们需要_this,而this指的是按钮 _this.fnClick(this); }; } } //这里的oBtn其实就是上面的按钮 TabSwitch.prototype.fnClick = function (oBtn){ //清空内容 for(var i = 0; i < this.oBtn.length; i++){ this.oBtn[i].className =''; this.aDiv[i].style.display = "none"; } //为点击的按钮添加active oBtn.className = "active"; //为对应div加上display:block this.aDiv[oBtn.index].style.display = "block"; }
阅读全文
0 0
- JS——面向对象实例
- js 面向对象编程实例
- js面向对象实例(实现简易版拖拽)
- js面向对象的继承实例-call
- JavaScript——面向对象实例
- [JS]JS面向对象编程——创建对象
- JS面向对象——继承
- JS——面向对象基础
- JS——面向对象高级
- JS——面向对象(1)
- js面向对象编程—继承
- JS面向对象(二)—继承
- JS面向对象(三)— 接口
- js温故而知新—面向对象的程序设计
- php面向对象(OOP)—实例化对象
- js - jquery闭包+js面向对象实例
- 深入理解js面向对象——创建对象
- [JS]JS面向对象编程——原型继承
- 设计模式的六大原则
- guava实现内存缓存
- webpack的使用
- 管理用户和组账户,passwd字段意义
- QGC地图中2点连线
- JS——面向对象实例
- 马跳日
- 1134. Vertex Cover (25)
- "页面跳转"实例详解"SpringMVC注解"的作用与用法
- iOS 处理二叉树数据 实现多级表格
- Mybatis
- 动态规划——最优二叉查找树
- MYSQL(五)
- shell脚本中 数组的基本用法