设计模式(10)[JS版]-JavaScript如何实现组合模式???
533
2022-05-30
简单实例
// 定义一个函数 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小时内删除侵权内容。