JS——面向对象实例
2017-09-17 22:35
246 查看
面向过程的选项卡
<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"; }
相关文章推荐
- 每日一个js实例5--通过面向对象实现运动
- js面向对象实例(实现简易版拖拽)
- JS面向对象实例、高级
- js面向对象经典实例
- 每日一个js实例7--通过面向对象实现选项卡
- js面向对象原型属性和实例属性
- JS 面向对象实例 prototype
- 原生JS以对象作为构造器创建实例Object.create()
- JS基础 面向对象方式写选项卡
- js面向对象举例
- JS基础继承(面向对象思想)
- 实例:Cocos2d-js中使用纹理对象创建Sprite对象
- python3 面向对象__类的内置属性与方法的实例代码
- js面向对象组织方式
- Jquery基础_弹出对话框_js的onload_jq的多次加载_Js和JQ对象转换_实例(一)
- js面向对象组件开发---弹窗
- javascript面向对象特性代码实例
- vue.js实例对象+组件树的详细介绍
- JS中如何比较两个Json对象是否相等实例代码
- JavaScript面向对象实例——创建日志调试对象来代替alert函数进行调试