每个函数就是一个对象 Function
, 函数对象都有一个子对象 prototype
对象, prototype
表示该函数的原型, 也表示一个类的成员的集合, 对象都会从一个 prototype
(原型对象)中继承属性和方法, 通过 new
创建一个实例对象时, prototype
对象的成员都成为实例化对象的成员。
所有 JavaScript 中的对象都是位于原型链顶端的 Object
的实例。例如: Array
对象从 Array.prototype
继承, 也继承 Object.prototype
。
PS: 在 new
后的实例上不能使用prototype, 否则发生编译错误。
function Person() {
this.height = 170 // 定义身高为 170
this.age = 25 // 定义年龄为 25
}
Person.prototype.weight = 120 // 定义体重为 120
// 定义原型
Person.prototype.eat = function () {
// 定义吃饭动作
console.log('吃饭')
}
Person.prototype.sleep = function () {
// 定义睡觉动作
console.log('睡觉')
}
// 调用
var person = new Person() // 定义一个函数对象
console.log('身高', person.height) // 170
console.log('年龄', person.age) // 25
console.log('体重', person.weight) // 120
console.log('吃饭', person