这是构造函数和构造函数的prototype之间的关系
Person.prototype.constructor === Person; // true
那么对Person创建的实例对象p1
p1.__proto__.constructor === Person; // true
在浏览器控制台中输入如下代码
function Person(name) {
this.name = name;
}
Person.prototype.sayHello = function() {
console.log(`Hello, ${this.name}!`);
}
const p1 = new Person("Mike"); // 实例对象p1
console.log("p1->", p1)
查看输出
实例对象p1有一个内部属性[[Prototype]], 其用于存放该对象对应的_proto。
对象的内部属性[[Prototype]]是无法被直接访问的,需要通过p1.__proto__属性或者 Object.getPrototypeOf(p1)方法来访问。
展开p1的[[Prototype]]
(p1.__proto__ === Person.prototype 实际上看的是Person的prototype属性)
橙框中是Person.prototype
再看下去
可以看到蓝框中我们自己定义的sayHello方法。
也可以看到Person.prototype.constructor 指向Person本身。
还能看到Person.prototype.__proto__ 这个属性指向Object.prototype
其他:
console.log(“Person.__proto__->”, Person.__proto__)
同步更新到自己的语雀:
https://www.yuque.com/dirackeeko/blog/gpbe3gy7zcyc6l0l
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: vue打包后导致css属性值丢失的问题如何处理?
当使用Vue进行打包时,有时可能会出现CSS属性值丢失的问题。这通常是由于CSS的压缩和优化过程导致的。下面是一些可能的解决方案: 关闭CSS的压缩和优化:在Vue的配置文件(vue.config.js)中,你可以通过添加以下配置来关闭CSS的压缩和优化: m…