設計模式(10)[JS版]-JavaScript如何實現組合模式???
642
2025-04-02
簡單實例
// 定義一個函數 function Foo(name) { this.name = name } // 調用函數 這個函數返回 undefined var foo = Foo('Tom') console.log(foo); // undefined // 調用構造方法 console.log(Foo); // [Function: Foo] console.log(Foo.__proto__); // [Function] console.log(Foo.constructor); // [Function: Function] console.log(Foo.prototype); // Foo {} console.log(Foo.prototype.__proto__); // {} console.log(Foo.prototype.constructor); // [Function: Foo] console.log(Foo.prototype.constructor === Foo); // true // 相當于 Foo.prototype.constructor('Tom') 返回this foo = new Foo('Tom') console.log(foo); // Foo { name: 'Tom' } console.log(foo.__proto__); // Foo {} console.log(foo.prototype); // undefined console.log(foo.constructor); // [Function: Foo] var foo1 = new Foo.prototype.constructor('Tom') console.log(foo1); // Foo { name: 'Tom' } var foo2 = new Foo('Tom') console.log(foo2); // Foo { name: 'Tom' } console.log(foo1 == foo2); // false console.log(foo1.__proto__); // Foo {} console.log(foo1.prototype); // undefined console.log(foo1.constructor); // [Function: Foo] console.log(foo2.__proto__); // Foo {} console.log(foo2.prototype); // undefined console.log(foo2.constructor); // [Function: Foo]
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
35
36
37
38
39
40
41
42
43
44
45
總結
圖片來源和文章參考
幫你徹底搞懂JS中的prototype、__proto__與constructor(圖解)
Prototype
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。