1. 程式人生 > >js的面向對象

js的面向對象

狀態 onclick 用戶 win 工作原理 什麽 系統 作用 默認

一、什麽是面向對象?
一切(萬物)皆對象
簡單點說,生活中有一些個物品,譬如說一個iPhone,我們也不知道裏面的工作原理吧?但實際應用操作上幾天,就會用了。
不需要知道原理就可以用它的功能,就是面向對象。
對象就是一個整體,對外提供一些功能和操作,而你不知道它內部是怎麽操作的。在編程中我們叫面向對象。
二、面向對象特點
1、抽象:抽指把核心的東西抽出來,把與我們要解決的問題有關的東西拿出來擺在面前
2、封裝:讓使用對象的人不考慮內部實現,只考慮功能使用 把內部的代碼保護起來,只留出一些個api接口供用戶使用
3、繼承:就是為了代碼的復用,從父類上繼承出一些方法和屬性,子類也有自己的一些屬性
4、多態:實際上是不同對象作用與同一操作產生不同的效果。多態的思想實際上是把“想做什麽”和“誰去做“分開
三、對象的組成
1、方法 函數:過程、動態的
2、屬性 變量:狀態、靜態的
四、this 當前的方法屬於誰就是誰
this的指向在函數創建的時候是決定不了的,在調用的時候才能決定,誰調用的就指向誰
如果一個函數中有this,但是它沒有被上一級的對象所調用,那麽this指向的就是window
如果一個函數中有this,這個函數有被上一級的對象所調用,那麽this指向的就是上一級的對象
如果一個函數中有this,這個函數中包含多個對象,盡管這個函數是被最外層的對象所調用,this指向的也只是它上一級的對象
this永遠指向的是最後調用它的對象,也就是看它執行的時候是誰調用的
在嚴格版中的默認的this不再是window,而是undefined
例如點擊事件裏的this,其實就是觸發事件的那個dom對象的onclick方法裏的this,
再比如說一個函數裏的this,這個函數都屬於window的一個方法,當然裏面的this也是window
一般不要在系統對象上面添加屬性和方法,不太好,而是在object這個對象身上,別的date呀array呀,這些對象都是有一些個好玩的功能的,
object也就自己最強大的一個功能就是,沒有功能~~~~ 這樣咱們就可以隨意給他加屬性和方法而不用去想會不會覆蓋了

js的面向對象