很火的一張圖很生動形象
mdn 給了我們一堆術語
請嘗試理解物件導向,並背誦 mdn 裡的以下內容
class 類
定義物件的特徵。它是物件的屬性和方法的模板定義.
object 物件
類的乙個例項。
property 屬性
物件的特徵,比如顏色。
method 方法
物件的能力,比如行走。
constructor 建構函式
物件初始化的瞬間, 被呼叫的方法. 通常它的名字與包含它的類一致.
inheritance 繼承
乙個類可以繼承另乙個類的特徵。
encapsulation 封裝
一種把資料和相關的方法繫結在一起使用的方法.
abstraction 抽象
結合複雜的繼承,方法,屬性的物件能夠模擬現實的模型。
polymorphism 多型
多意為『許多』,態意為『形態』。不同類可以定義相同的方法或屬性。
1 封裝 model view controller
1. controller === object
2. controller.
init
(view, model)
controller.init.
call
(controller, view, model)
那麼 controller.init 裡面的 this 當然 tm 是 controller
也就是這個1裡面的object
controller.init 裡面的 this 就是 object
object.init 裡面的 this 就是 object
3. initb.
call
(this
)initb 裡面的 this
=== call 後面的this
call 後面 this
=== 第二條裡的 this
第二條裡面的 this
=== object
=> initb 裡面的 this 就是 object
2 複習 this
button.
onclick
=functionf1(
)button.onclick.
call()
button.
addeventlistener
('click'
,function()
2 結果
$
('ul').
on('click'
,'li'
/*selector*/
,function()
)
3 結果
去看 on 的原始碼呀 -> 做不到
jquery 的開發者知道 onclick 的原始碼,f1.call(???)
jquery 的開發者寫了文件
看文件呀
functionx(
),f2(
)}}var options =,f2
()}var x =x(
)x.f1(options)
3 new 的作用
var object =
newobject()
自有屬性 空
object.proto === object.prototype
var array =
newarray
('a'
,'b'
,'c'
)自有屬性 0
:'a'1:
'b'2
:'c'
,length:
3array.proto === array.prototype
array.prototype.proto === object.prototype
var fn =
newfunction
('x'
,'y'
,'return x+y'
)自有屬性 length:
2, 不可見的函式體:
'return x+y'
fn.proto === function.prototype
array is a function
array
=function()
array.proto === function.prototype
JS中的物件導向
一 首先建立js物件的四種方式 1.普通模式 var person new object person.name irving person.age 22 person.sayhi function 但是這樣每次去建立乙個類的物件相當的麻煩。所以有了下面的集中建立物件的模式。2.工廠模式 funct...
js中的物件導向。
1.js中的物件導向就是類,而類中關鍵的就是繼承 2.首先宣告乙個類 var gandparent function 3.建構函式實現繼承 function grandparent grandparent.prototype.say function function son console.log...
js中物件導向的繼承
參考 繼承 缺點 修改子類dog.prototype的同時也影響到了父類的animal.prototype 物件導向的拷貝繼承 上面 只是用了淺拷貝實現了物件的繼承,jquery中就是利用了拷貝繼承。function extend c,p if typeof p object else if win...