1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var count = 0
function WhoAmI(){
count ++
var res = document.getElementsByClassName('console')[0].innerHTML
document.getElementsByClassName('console')[0].innerHTML =
`${res} <br/> ${count} I'm ${this.name} of ${typeof(this)}`
}

WhoAmI() // ①

let BillGates = {
name: 'Bill Gates'
}
BillGates.WhoAmI = WhoAmI
BillGates.WhoAmI() // ②

let SteveJobs = {
name: 'Steve Jobs'
}
SteveJobs.WhoAmI = WhoAmI
SteveJobs.WhoAmI() // ③

WhoAmI.call(BillGates) // ④
WhoAmI.call(SteveJobs) // ⑤

BillGates.WhoAmI.call(SteveJobs) // ⑥
SteveJobs.WhoAmI.call(BillGates) // ⑦

WhoAmI.WhoAmI = WhoAmI
WhoAmI.name = 'WhoAmI'
WhoAmI.WhoAmI() // ⑧

BillGates.WhoAmI.apply(SteveJobs) // ⑨
SteveJobs.WhoAmI.apply(BillGates) // ⑩