原型链方式
默认继承机制,将需要重用的属性和方法迁移至原型对象中,而将不可重用的部分设置为对象的自身属性,但这种继承方式需要新建一个实例作为原型对象,效率上会低一些。
function Shape() {
this.name = '形状';
}
Shape.prototype.perimeter = function() { };
function Square() {
this.length = 1;
}
// Javascript中没有抽象类的概念,所以Shape是可以实例化的
// 子对象构造函数的prototype属性指向父对象的一个实例
Square.prototype = new Shape();
// Square的prototype属性被重写了,指向了一个新对象,但是这个新对象的constructor属性却没有正确指向Square,JS 引擎并不会自动完成这件工作,需要手动去将Square的原型对象的constructor属性重新指向Square
Square.prototype.constructor = Square;
Square.prototype.perimeter = function() {
return this.length * 4;
};
var square = new Square();
square.name; // '形状'
square.perimeter(); // 4
分享到:
相关推荐
本篇文章小编将为大家介绍JS继承--原型链继承和类式继承,有需要的朋友可以参考一下
js代码-原型链继承demo
原型链继承(对象间的继承)类式继承(构造函数间的继承) 原型链继承: 代码如下://要继承的对象var parent={name : “baba” say : function(){ alert(“I am baba”);}} //新对象var child = ...
js代码-JavaScript 原型链与继承
js代码-原型链和继承
说好的讲解JavaScript继承,可是迟迟到现在讲解。废话不多说,直接进入正题。 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考《面向对象JS基础讲解,工厂模式、构造...
JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。...由于 JavaScript 是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下原型和原型链
本文实例讲述了js对象继承之原型链继承的用法。分享给大家供大家参考。具体分析如下: 代码如下:[removed] //定义猫的对象 var kitty = {color:’yellow’,bark:function(){alert(‘喵喵’);},climb:...
使用js实现继承的七种方式,详细讲解了js中的原型链继承,构造函数继承,组合继承(经典继承),原型式继承,寄生式继承,寄生组合式继承,以及ES6中的继承,描述原理以及实现和要点概述等。
JS的继承
js代码-组合继承(原型链继承+构造函数继承)
而Object的原型对象用Object.__proto__ = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什么所有的javascript对象都具有Object的基本方法。原型对象的用途是为每个实例对象存储共享...
能学到什么:理解原型链对于 JavaScript 开发者来说非常重要,因为它影响了对象的属性访问、继承和代码复用等方面。通过掌握原型链的概念和工作原理,开发者可以更好地利用 JavaScript 的面向对象特性。 这是一个可...
6.3.1稳妥构造函数模式 6.3.2借用构造函数 6.3.3组合继承[借用构造函数+原型链]
主要介绍了javascript原型链和继承的概念,以及使用原型链实现继承、经典继承、组合式继承、寄生组合式继承。非常实用,是篇非常不错的文章,这里推荐给大家。