在JS中一切都是对象,只要是对象,都会有.__proto__指向它的构造该对象的原型构造函数,
prototype是函数所特有的,指的是这个函数的原型对象,如果未定义指的是一个对象
eg:
function foo(){}
foo.prototype是foo.prototype如果未定义就是一个对象
foo.__proto__指的是函数这个原型对象(Function.prototype)他的.__proto__是对象这个原型对象,
在未重写函数的prototype的情况下,

function Flower(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
原型链继承
Flower.prototype.eat = function () {
console.log("我是父类")
}
let f1 = new Flower()
let Rose = function (year) {
this.year = year
}
Rose.prototype = new Flower()
let r1 = new Rose()
console.log(r1)
// 构造函数继承
let Man = function (number) {
Flower.apply(this, ["lili", 12])
this.number = number
}
Man.prototype = new Flower()
let Man1 = new Man(55)
console.log(Man1)
Man1.eat()
另一种写法
console.log(("age") in f1)
本文深入探讨了JavaScript中对象的.__proto__属性和函数的prototype属性,并通过具体示例介绍了原型链继承和构造函数继承的方法。
1157

被折叠的 条评论
为什么被折叠?



