十八、组件————温开水的复习笔记_咕噜一口温开水的博客-CSDN博客https://blog.csdn.net/qq_47286790/article/details/122893790JavaScript中万物皆为对象(函数是对象、原型也是对象...)
白嫖来一张图帮助我理解:
(一)既然万物都是对象,那么怎么创建创建对象呢?------对象的分类
按照创建对象的不同方法来分类:
①普通对象
②函数对象
(二)对比两类对象来帮助理解
普通对象 | 函数对象(构造函数) |
var obj={ x:1, y:2 } | function f(name,age,gender){ this.name=name; this.age=age; this.gender=gender } var k=new f('小明',18,'男') |
当Obj一创建成功,就形成如图结构,在这个对象中,在上面的代码中我们没有为_proto_指定它的指向,所以为默认值。通过对象字面量构造出的对象,其[[prototype]]指向Object.prototype | 通过new操作符调用的函数就是构造函数。k是f()的实例,实例的构造函数属性constructor指向构造函数。由构造函数构造的对象,其[[prototype]]指向其构造函数的prototype属性指向的对象。每个函数都有一个prototype属性,其所指向的对象带有constructor属性,这一属性指向函数自身。 |
较复杂的例子: var a= { var c = { b.add(4); // 7 | 较复杂的例子: function F(y){ Foo.prototype.x = 1; Foo.prototype.add = function(z){ var b = new F(1); var c = new F(2); alert(b.add(2)); //4
|
例子图解 |
原文链接:https://blog.csdn.net/dovlie/article/details/76228994
图片原文链接:
http://www.qdfuns.com/notes.php?mod=view&u=17398&id=6962d01d88c6b73ea606662fd397b6f6
参考博客:
[1] JavaScript深入之从原型到原型链 - SegmentFault 思否https://segmentfault.com/a/1190000008959943
[4]图解js原型对象、原型链_dovlie的博客-CSDN博客_js原型对象https://blog.csdn.net/dovlie/article/details/76228994