<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <script> var arr1 = new Array(12, 22, 23, 454, 34); var arr2 = new Array(23, 234, 23); Array.prototype.sum = function () { //class 原型
//arr1.sum=function (){ //行间样式 给对象加东西 var result = 0; for (var i = 0; i < this.length; i++) { result +=this[i]; } return result; }; alert(arr1.sum()); alert(arr2.sum()); </script> </head> <body> </body> </html>
<!DOCTYPE html> \混合的构造函数/原型方式 <html> <head> <title></title> <meta charset="utf-8" /> <script> function createPerson(name, qq) { \构造函数 this.name = name; this.qq = qq; } //createPerson.prototype 是原型 createPerson.prototype.showName = function () { alert("我的名字:" + this.name); }; createPerson.prototype.showQQ = function () { alert("我的QQ" + this.qq) }; var obj = new createPerson("bule", "234234234"); var obj2 = new createPerson("234", "23423453"); obj.showName(); obj.showQQ(); obj2.showName(); obj2.showQQ(); //alert(obj); alert(obj.showName == obj2.showName); </script> </head> <body> </body> </html>
用构造函数加属性
用原型加方法
-------------------------------------------------------------------------------------------------------------------------------------------
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <style> #div1 input {background:white;} #div1 input.active {background:yellow;} #div1 div {200px; height:200px; background:#ccc; display:none;} </style> <script> window.onload = function () { var oDiv = document.getElementById('div1'); var aBtn = oDiv.getElementsByTagName('input'); var aDiv = oDiv.getElementsByTagName('div'); for (var i = 0; i < aBtn.length; i++) { aBtn[i].index = i; aBtn[i].onclick = function () { for (var i = 0; i < aBtn.length; i++) { aBtn[i].className = ''; aDiv[i].style.display = 'none'; } this.className = 'active'; aDiv[this.index].style.display = 'block'; }; } }; </script> </head> <body> <div id="div1"> <input class="active" type="button" value="aaa" /> <input type="button" value="bbb" /> <input type="button" value="ccc" /> <div style="display:block;">aaa</div> <div>sdfsdf</div> <div>sdfsdfsdf</div> </div> </body> </html>
(上面)面向过程 改 面向对象
window.onload 构造函数
初始化整个程序 初始化整个对象
变量 属性
函数 方法
函数没有嵌套
可以有全局变量
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8" /> <style> #div1 input { background: white; } #div1 input.active { background: yellow; } #div1 div { 200px; height: 200px; background: #ccc; display: none; } </style> <script> //var index = null; window.onload = function () { new TabSwitch('div1'); }; function TabSwitch(id) { var _this = this; var oDiv = document.getElementById(id); this.aBtn = oDiv.getElementsByTagName('input'); this.aDiv = oDiv.getElementsByTagName('div'); for (var i = 0; i < this.aBtn.length; i++) { this.aBtn[i].index = i; this.aBtn[i].onclick = function () { _this.fnClick(this); }; } }; TabSwitch.prototype.fnClick = function (oBtn) { for (var i = 0; i < this.aBtn.length; i++) { this.aBtn[i].className = ''; this.aDiv[i].style.display = 'none'; } oBtn.className = 'active'; this.aDiv[oBtn.index].style.display = 'block'; }; </script> </head> <body> <div id="div1"> <input class="active" type="button" value="aaa" /> <input type="button" value="bbb" /> <input type="button" value="ccc" /> <div style="display:block;">aaa</div> <div>sdfsdf</div> <div>sdfsdfsdf</div> </div> </body> </html>