JavaScript中如何实现几种常见的继承方法示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1511个文字,预计阅读时间需要7分钟。
1. 基于原型链继承+原理:子类原型指向父类实例实现原型共享,即 Son.prototype=new Father()。这里先简单介绍下原型+原理:JavaScript中每个对象都有一个__proto__属性,指向其原型。原型是指另一个对象,该对象包含了子对象需要继承的属性和方法。
1.原型链继承
原理:子类原型指向父类实例对象实现原型共享,即Son.prototype = new Father()。
这里先简单介绍下原型
js中每个对象都有一个__proto__属性,这个属性指向的就是该对象的原型。js中每个函数都有一个prototype属性,这个属性指向该函数作为构造函数调用时创建的实例的原型。原型对象上有一个constructor属性,指向创建该对象的构造函数,该属性不可枚举。
var obj = {}; obj.__proto__ === Object.prototype; //true console.log(Object.prototype.constructor) // ƒ Object
当我们访问一个对象的属性或者方法时,如果找不到,则会通过原型向上寻找,若原型上也未找到,则会去原型的原型上面去找。比如我要调用obj.toString方法时,在自身并未找到toString方法,则会去原型上去寻找,即在Object.prototype上去寻找,找到后运行该方法。
本文共计1511个文字,预计阅读时间需要7分钟。
1. 基于原型链继承+原理:子类原型指向父类实例实现原型共享,即 Son.prototype=new Father()。这里先简单介绍下原型+原理:JavaScript中每个对象都有一个__proto__属性,指向其原型。原型是指另一个对象,该对象包含了子对象需要继承的属性和方法。
1.原型链继承
原理:子类原型指向父类实例对象实现原型共享,即Son.prototype = new Father()。
这里先简单介绍下原型
js中每个对象都有一个__proto__属性,这个属性指向的就是该对象的原型。js中每个函数都有一个prototype属性,这个属性指向该函数作为构造函数调用时创建的实例的原型。原型对象上有一个constructor属性,指向创建该对象的构造函数,该属性不可枚举。
var obj = {}; obj.__proto__ === Object.prototype; //true console.log(Object.prototype.constructor) // ƒ Object
当我们访问一个对象的属性或者方法时,如果找不到,则会通过原型向上寻找,若原型上也未找到,则会去原型的原型上面去找。比如我要调用obj.toString方法时,在自身并未找到toString方法,则会去原型上去寻找,即在Object.prototype上去寻找,找到后运行该方法。

