javascript 用call来继承实例属性

xxx.call(thisObj, arg1,...)的调用可以改变当前函数的执行环境为传入的thisObj对象。利用这一点可以实现继承————当前的对象获得XXX的属性和方法。

例子:

function Animal(){
  this.name= ‘animal‘;
  this.say = function(){
     alert(this.name);
  }
}

Animal.prototype.walk = ‘I can walk‘;

function Duck(){
  Animal.call(this);/*这样,就实现了凡是有构造函数Duck  new处理的对象就会继承Animal上的属性(name)和方法(say)*//*但是Animal的原型上面的属性和方法不会被继承。*//*也就是说通过这种方法只会继承实例属性,而不能继承原型属性。*/

  this.color = ‘white‘;
}

var duck = new Duck();

duck.say();//animal

  

时间: 2025-01-22 00:39:08

javascript 用call来继承实例属性的相关文章

IOS--Day04---类与对象,继承 ,实例,属性,点语言

创建一个类需要两个部分:接口和实现 ----- .h  头文件 相当于接口 @interface Aa: NSObject  //基类 { //成员变量声明 //大括号内部,添加当前类属性 //字符串类型 NSString *name;   //姓名 NSString是一个类 //整型类型 NSInteger age; //年龄 是数值类型 不是类 NSString *gender; } //方法声明 @end ------ .m文件相当于实现类 #import "Aa.h" @imp

JavaScript常见的六种继承方式

前言 面向对象编程很重要的一个方面,就是对象的继承.A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法.这对于代码的复用是非常有用的. 大部分面向对象的编程语言,都是通过"类"(class)实现对象的继承.传统上,JavaScript 语言的继承不通过 class(ES6 引入了class 语法),而是通过"原型对象"(prototype)实现.那么在JS中常见的继承方式有几种呢? 如需本文源码,请猛戳 常见的六种继承方式 如果觉得文章对你有些许帮助

JavaScript的封装和继承

提到JavaScript"面向对象编程",主要就是封装和继承,这里主要依据阮一峰及其他博客的系列文章做个总结. 继承机制的设计思想 所有实例对象需要共享的属性和方法,都放在这个对象里面:那些不需要共享的属性和方法,就放在构造函数里面. 由于所有的实例对象共享同一个prototype对象,那么从外界看起来,prototype对象就好像是实例对象的原型,而实例对象则好像"继承"了prototype对象一样. 封装 主要介绍了如何"封装"数据和方法,以

Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承

s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一.  Class的基本用法 1.  constructor方法 1 //定义类 2 class Point { 3 constructor(x, y) { 4 this.x = x; 5 this.y = y; 6 } 7 8 toString() { 9 return '(' + this.x +

Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强-" 什么是面向对象 面向对象就不像面向过程那样按照功能划分模块了,它所关注的是软件系统有哪些参与者,把这些参与者称为对象,找出这些软件系统的参与者也就是对象之后,分析这些对象有哪些特征.哪些行为,以及对象之间的关系,所以说面向对象的开发核心是对象 什么是类 面向对象编程的两个重要的概念:类和对象 类是

Python中类的声明,使用,属性,实例属性,计算属性及继承,重写

Python中的类的定义以及使用: 类的定义: 定义类 在Python中,类的定义使用class关键字来实现 语法如下: class className: "类的注释" 类的实体 (当没有实体时 使用pass代替) 下面定义一个鸟类; class flyBord: """鸟类""" pass #这里我们并没有实体所以我们使用pass代替 这就是一个类的最基本的定义 类中的__init__函数:类似于java中的构造函数,以及类

玩转JavaScript OOP[4]——实现继承的12种套路

概述 在之前的文章中,我们借助构造函数实现了"类",然后结合原型对象实现了"继承",并了解了JavaScript中原型链的概念. 理解这些内容,有助于我们更深入地进行JavaScript面向对象编程. 由于JavaScript是一门基于对象和原型的弱语言,灵活度非常高,这使得JavaScript有各种套路去实现继承.本篇文章将逐一介绍实现继承的12种套路,它们可以适用于不同的场景,总一种套路适合你. (亲:文章有点长,请点击右侧的「显示文章目录」按钮,以便导航和阅读

JavaScript面向对象之类的继承

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

JavaScript的对象和继承

本文记录一种JavaScript的对象定义和继承的书写方式,也是目前使用比较普遍的一种. 1.定义对象(混合的构造函数和原型方式) // 属性在构造函数里定义 function Person(name, age, sex) { this.name = name; this.age = age; this.sex = sex; } // 方法在原型里定义 Person.prototype.hello = function() { alert("Hello, my name is " +