本篇内容介绍了“JS构造函数实例对象和原型对象之间的关系是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 构造函数—->创建对象per var per = n免费云主机、域名ew Person(‘Linda’,23,‘female’);
补充:console.dir(per)可以打印出对象per的结构(属性与属性值) 以上我们可以得出实例对象与构造函数之间的关系如下:1. 实例对象是通过构造函数来创建的—创建的过程叫实例化2. 如何判断对象是不是某构造器实例化的结果?(推荐第二种) 1) 通过构造器的方式, 即实例对象.构造器==构造函数名字: console.log(dog.constructor==Animal); 2) 实例对象 instanceof 构造函数名字: console.log(dog instanceof Animal);构造函数创建对象会带来问题,我们来看以下例子
通过打印结果为false可以得出结论per1,per2并不共享eat方法,那么这很容易推论出通过自定义构造函数创建的对象实例并不节约内存空间,以此引出了原型来解决这个问题。通过打印结果我们发现p1,p2两个实例对象共享eat方法,实现了数据共享,节省内存空间。但是我们查看实例对象的结构并没有发现eat方法 ,但是对象确实能调用到eat方法,这是什么原因呢?
接着我们再来查看一下构造函数Person的结构
通过console.dir(p1)查看对象的结构时,我们发现它除了age,name属性外,还存在一个_proto_属性,值是一个对象,在JavaScript中被称为隐式原型。一个对象的隐式原型指向构造该对象的构造函数的原型prototype, 这也保证了实例能够访问在构造函数原型中定义的属性和方法。“JS构造函数实例对象和原型对象之间的关系是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注云技术网站,小编将为大家输出更多高质量的实用文章!
相关推荐: PHP循环中while()和list()、each()方法如何遍历数组
这篇文章主要为大家展示了“PHP循环中while()和list()、each()方法如何遍历数组”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP循环中while()和list()、each()方法如何遍历数组”…