標籤:image object 技術分享 color 導致 his html .com head
物件導向:不瞭解原理的情況下,會使用功能,不關注內部細節,是一種通用思想
對象:黑盒子 不瞭解內部的結構,知道表面的各種操作
物件導向編程OOP:
- 特點:抽象(抓住核心問題),
- 封裝(不考慮內部實現,只考慮功能),
- 繼承(遺傳 父母和孩子 從父類繼承出一些屬性和方法,還可以 有自己的新方法)
多重繼承 多態
對象由屬性和方法組成
- 屬性-變數:狀態 靜態
- 方法-函數:過程 動態
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><body><script type="text/javascript"> var a=7;//變數 自由的,不屬於任何人 alert(a); var arr=[1,2,3,4,5,6]; arr.a=12;//屬性 非自由,屬於一個對象 alert(arr.a); function aa(){ alert(‘abc‘);//函數:自由 } aa(); arr.aa= function () { alert(‘abcd‘);//方法:非自由 屬於對象 } arr.aa();</script></body></html>
結果:7 12 abc abcd
-
this:當前發生事件的對象 當前的方法屬於誰
<script type="text/javascript"> var arr=[1,2,3,4]; arr.a=12; arr.show=function(){ alert(this.a); } arr.show();</script>
12
<script type="text/javascript"> window.show=function(){ alert(this); } show();</script>
object Window 當前的方法屬於誰 屬於Window
- 不能再系統對象中隨意添加方法、屬性,否則會覆蓋已有方法和屬性
- object 對象 沒有東西
<script type="text/javascript"> var obj=new Object(); obj.name=‘blue‘; obj.qq=‘930260035‘; obj.showName= function () { alert(‘我的名字是:‘+this.name); } obj.showQQ= function () { alert(‘我的qq是:‘+this.qq); } obj.showName(); obj.showQQ();</script>
<script type="text/javascript"> function createPerson(name,qq){//建構函式 //原料 var obj=new Object(); //加工 obj.name=name; obj.qq=qq; obj.showName= function () { alert(‘我的名字是:‘+this.name); }; obj.showQQ= function () { alert(‘我的qq是:‘+this.qq); }; //出廠 return obj; } var obj=createPerson(‘blue‘,‘54546466‘); obj.showName(); obj.showQQ(); var obj2=createPerson(‘張三‘,‘555555555‘); obj2.showName(); obj2.showQQ();</script>
JavaScript物件導向