前言
理解三者之前的关系
`提示:以下是本篇文章正文内容,下面案例可供参考
![在这里插入图片描述](https://img-blog.csdnimg.cn/e353185e0d73462ba5cb90e7be4c91dc.jpeg
一、构造函数、实例、原型三者之间的关系
原型函数中的this指向
/*
构造函数、实例、原型三者之间的关系
1、任何函数都有prototype属性,他本身就是一个对象
2、构造函数也是函数,也有prototype属性,我们称之为原型
3、构造函数原型上的属性和方法可以被实例化对象所继承(重点)
4、任何对象都有constructor属性,实例化对象的constructor属性指向构造函数
5、原型也是对象也有constructor属性,原型对象的constructor属性指向构造函数
6、任何对象都有__proto__属性,它本身是个指针,实例化对象的__proto__属性指向的是构造函数的原型
*/
/*
原型函数中的this指向
1、实例化对象调用,指向的是实例化对象
2、原型对象调用,指向的是原型对象
*/
对构造函数、实例、原型三者之间的关系的进行验证的打印及其打印结果
1、任何函数都有prototype属性,他本身就是一个对象
var fun = function () { }
console.log(fun.prototype);
在这里插入图片描述
2、构造函数也是函数,也有prototype属性,我们称之为原型
function Ufo(name, size, fly) {
this.name = name
this.size = size
this.fly = fly
}
var ufo = new Ufo(‘ufo’, 10, function () { console.log(‘可以旋转’); })
console.log(Ufo.prototype);
3、构造函数原型上的属性和方法可以被实例化对象所继承(重点)
Ufo.prototype.catchPeople = function () {
console.log(this);
console.log(‘抓娃娃’);
}
4、任何对象都有constructor属性,实例化对象的constructor属性指向构造函数
console.log(Ufo.constructor);
5、原型也是对象也有constructor属性,原型对象的constructor属性指向构造函数
6、任何对象都有__proto__属性,它本身是个指针,实例化对象的__proto__属性指向的是构造函数的原型