首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript寄生继承中"this"指的是什么?

在JavaScript中,寄生继承是一种实现对象继承的方法。在寄生继承中,"this"关键字指的是当前对象的实例。

寄生继承的实现方式是:创建一个新的对象,并将新对象的原型指向另一个对象。这样,新对象就能访问另一个对象的属性和方法。

以下是一个寄生继承的示例代码:

代码语言:javascript
复制
function inherit(obj) {
  function F() {}
  F.prototype = obj;
  return new F();
}

var person = {
  name: 'John',
  sayHello: function() {
    console.log('Hello, my name is ' + this.name);
  }
};

var newPerson = inherit(person);
newPerson.name = 'Jane';
newPerson.sayHello(); // 输出 "Hello, my name is Jane"

在这个示例中,inherit函数接受一个对象作为参数,并创建一个新的对象,将新对象的原型指向传入的对象。然后,我们创建了一个person对象,并使用寄生继承创建了一个新的newPerson对象。在newPerson对象中,我们可以访问person对象的属性和方法,并且"this"关键字指的是当前对象的实例。

总之,在JavaScript寄生继承中,"this"关键字指的是当前对象的实例,可以访问当前对象的属性和方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript寄生式组合继承

组合继承弥补了原型链和盗用构造函数的不足,是js中使用最多的继承模式。 寄生继承 寄生继承就是用一个函数包装一个对象,然后返回这个函数的调用,这个函数就变成了个可以随意增添属性的实例或对象。...寄生继承同样适合主要关注对象,而不在乎类型和构造函数的场景。object()函数不是寄生继承所必需的,任何返回新对象的函数都可以在这里使用。...注意 通过寄生继承给对象添加函数会导致函数难以重用,与构造函数模式类似。...寄生式组合继承 组合继承存在这一定的效率问题,它的父类构造函数始终会被调用俩次,一次在创建字类原型时调用,另一次在子类构造函数调用。本质上子类只需要在执行时重写自己的原型就行了。...寄生式组合继承可以算是引用类型继承的最佳模式。

27830
  • java 继承什么_java中继承指的是什么

    java中继承指的是什么 发布时间:2020-08-20 14:46:11 来源:亿速云 阅读:55 作者:小新 这篇文章将为大家详细讲解有关java中继承指的是什么,小编觉得挺实用的,因此分享给大家做个参考...java中继承什么? Java继承是一个对象获取父对象的所有属性和行为的机制。它是面向对象编程系统(OOP)的重要组成部分。 Java中继承的思想是,创建基于现有类的新类。...您可以使用上一课程已定义的相同字段和方法。 为什么在java中使用继承? 1、可以实现方法重写(这样可以实现运行时多态性)。 2、继承允许我们重用代码,它提高了Java应用程序的可重用性。...1、单一继承:在单一继承,子类继承一个超类的特征。在下图中,类A充当派生类B的基类。 2、多级继承: 在多级继承,派生类将继承基类,并且派生类也充当其他类的基类。...关于java中继承指的是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    66320

    JavaScript之面向对象学九(原型式继承寄生继承)

    一、原型式继承继承模式是由道格拉斯*克罗克福德在2006年提出的实现继承的方法. 模式的基本思路:借助原型可以基于已有的对象创建新的对象,同时还不必因此创建自定义类型。...function F() { //定义一个F类型的对象 this.name="111"; } F.prototype=o;//使F的原型对象指向传入对象,也就是说F继承了传入的对象...name="Kobe"; person2.friends.push("Durrant"); alert(person1.friends); //输出:李四,王五,赵六,Durrant 这种继承模式和原型构造函数模式类似...所以根据这个特点,通过更改传入对象的属性值,而省去了创建构造函数的步骤,所以当我们没有必要兴师动众的创建构造函数,只想让一个对象与另一个对象保持类似的情况下,原型继承是完全可以胜任的!

    57670

    深入理解javascript继承机制(4)多继承寄生继承借用构造函数借用构造函数并且复制原型以上

    javascript而言,要实现多继承是比较简单的,因为javascript函数可以接受任意个数目的参数,这就使问题变得简单了。...同时要注意一个问题,** 如果传入的对象由同名属性,那么属性最后的值会和传入的最后一个对象相同 ** 寄生继承 寄生顾名思义,就是寄生在一个已有的对象,我们在创建对象的时候,寄生在已有的对象上,直接吸收其他对象已有的功能...首先将已有的对象作为新对象的原型,继承它的属性,我们调用了之前的objec函数 然后再给他添加其他属性与方法 借用构造函数 这种继承模式,就是子对象的构造函数调用父对象的构造函数,通过apply和...call和apply构造函数是什么呢?实际就是他们可以让一个一个对象去借用另一个对象的方法,并为己所用,这是一种非常简单的代码重用的方法,实质上就是去改变函数的this值。...这样的话,triangle对象会继承Shape构造函数的属性,但不会继承原型的属性。

    67210

    JavaScript继承

    面向对象的继承 基于对象的原型实现 object....__proto__ = obj指向一个对象 基于构造函数的原型实现 Object.prototype指向一个空对象 继承常见的几种方式 原型链继承: 原型与对象继承; 只继承于原型 问题: 实际上并不是真正的继承...原型式继承 借助构造函数: apply() 或 call() 方法 问题: this 的传递 组合方式继承: 原型链 + 构造函数 面向对象 对象 创建对象的方式 构造函数方式 var obj =...例如以下示例代码: function Foo() {} var foo = new Foo() 上述示例代码的 foo 对象的构造器就是 Foo。...__proto__ === Foo.prototype) 函数 函数创建方式 直接量方式 var fun = function(){}与 JavaScript 的变量是存在关系,例如以下示例代码:

    56020

    Javascript继承示例代码

    面向对象的语言必须具备四个基本特征: 1.封装能力(即允许将基本数据类型的变量或函数放到一个类里,形成类的成员或方法) 2.聚合能力(即允许类里面再包含类,这样可以应付足够复杂的设计) 3.支持继承...(父类可以派生出子类,子类拥有父母的属性或方法) 4.支持多态(允许同样的方法名,根据方法签名[即函数的参数]不同,有各自独立的处理方法) 这四个基本属性,javascript都可以支持,所以javascript...确实是一种弱类型的面向对象的语言,这里给出一个简单的类继承的代码 //父类ClassA function ClassA(sColor)...function ClassB(sColor,sName){         ClassA.call(this,sColor);//利用call函数,将ClassA的所有方法都赋给ClassB,即实现了继承...oClassB.sayName();//这是ClassB的新方法 /* call函数的演示示例 function sayColor(sPrefix, sSuffix) { alert(sPrefix

    77080

    HTTP 协议无状态的 状态 到底指的是什么

    引子 正文 总结 ---- 引子 最近在好好了解http,发现对介绍http的第一句话【http协议是无状态的,无连接的】就无法理解了:无状态的【状态】到底指的是什么?!...【状态】到底指的是什么?!...最终很高兴的是我找到了让人满意的答案,先卖个关子,各位如果着急可以直接拉到最下查看 正文 http协议无状态的【状态】到底指的是什么?!...,实现语言、web容器等,都默认支持它 2.无连接指的是什么 每一个访问都是无连接,服务器挨个处理访问队列里的访问,处理完一个就关闭连接,这事儿就完了,然后处理下一个新的 无连接的含义是限制每次连接只处理一个请求...,我们知道了三点: 服务器上肯定存有用户的数据,你提交的增删改查它也能够处理,所以这句话【服务器没有保存客户端的状态】的状态并不是指用户的数据,我们的猜测不对 我们的质疑对了,无状态能实现购物车,可以通过服务器上存有的用户数据来实现

    1.3K20

    JavaScript6种继承方式总结

    我们将在接下来的继承方式解决这个问题。...原型式继承 第四种方式是原型式继承,原型式继承的主要思路就是基于已有的对象来创建新的对象,实现的原理是,向函数传入一个对象,然后返回以这个对象为原型的对象。...寄生继承 第五种方式是寄生继承寄生继承的思路是创建一个用于封装继承过程的函数,通过传入一个对象,然后复制一个对象的副本,然后对象进行拓展,最后返回这个对象。...第六种方式是寄生式组合继承,组合继承的缺点就是使用超类型的实例作为子类型的原型,导致添加了不必要的原型属性。...寄生式组合继承的方式是 使用超类型的原型副本来作为子类型的原型,这样就避免了创建不必要的属性。

    35410

    《现代Javascript高级教程》JavaScript的原型与继承

    不同于传统的基于类的继承JavaScript的类和继承是基于原型链模型的。在ES2015/ES6引入了class关键字,但其本质仍然是基于原型链的语法糖。...原型(Prototype) 原型(Prototype)是JavaScript对象的一个特殊属性,它用于实现属性和方法的继承。...在JavaScript,每个对象都有一个原型属性,它指向另一个对象,这个对象被称为原型对象。通过原型链,对象可以从原型对象继承属性和方法。...原型继承 原型继承是一种通过继承原型对象来创建新对象的方式。在 JavaScript ,我们可以使用多种方式实现原型继承。...寄生组合继承 寄生组合继承是一种常用的原型继承方式,结合了构造函数继承和原型链继承的优点,避免了原型链不必要的属性复制和方法重复定义的问题。

    23740
    领券