什么是初始化对象?
顾名思义,我们创建对象时便已调用默认编写的init方法,实现初始化。
我们要求调用say方法时,能输出init里的属性。
(*通常写法下,在函数中使用this.xxx形式可以完成需求,但此写法可以将构造器的初始化信息封装成一个方法,统一添加到prototype上,更简洁直观,需要在一个函数中增添多种实例方法时,此写法最为优雅。)
实现
一、
先调用init方法
输出: wc 1
这种方法每次需要手动输入,不满足需求。
二、
return init方法
报错,找不到say方法。
因为函数实例化时,实例化了init,而我们并没有在init的prototype上定义say方法,d对象的_proto_属性在init的prototype上找不到say方法。
(*可参考我的关于JS原型链的文章)
解决:
将init.prototype指向Dog.prototype.
找到了!