前端——JavaScript 面向对象

对象


创建对象


对象是包含相关属性和方法的集合体。
创建自定义对象的基本用法:
// 使用object对象的方式创建对象
var 对象名= new object();
对象名·属性="属性值";
对象名·方法 = function(){}
// 使用字面量赋值方式创建对象
var 对象名={
属性:"属性值”
方法:function(){}


构造函数和原型对象


构造函数


构造函数可以用来创建特定类型的对象。
构造函数是一个普通函数,使用 new操作符就能生成对象,

在构造函数内部使用 this 关键字,代表所要生成的对象。
构造函数始终都应该以一个大写字母开头。.

基本用法


function 构造函数(参数1,参数2,...){
this.新对象属性 = 参数;
this.新对象方法= function(){}
var 对象名 = new 构造函数(参数1,参数2,...);

consturctor 属性


在 JavaScript 中,constructor 属性用于返回对象的构造函数,其返回值是函数的引用,不是函数名。


基本用法


对象名.constructor


instanceof 运算符


JavaScript 中变量的类型判断常常使用 typeof 运算符,但使用 typeof 判断引用类型存储值时,无论引用的是什么类型的对象,它都返回 object。
ECMAScript 引入了另一个运算符 instanceof 来解决这个问题,instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。


基本用法


对象名 instanceof 类型


原型对象


在 JavaScript 中,每当定义一个对象(函数也是一个对象)的时候,对象中都会包含一些预定义的属性,其中每个函数对象都有一个 prototype 属性,这个属性指向函数的原型对象。JavaScript 的原型对象可以看作是一个模板,用于定义对象的基本属性和方法。当创建一个对象时,如果该对象所属的构造函数定义了原型对象,那么这个对象就会继承原型对象中的属性和方法

基本用法

构造函数名.prototype.属性 =“属性值";
构造函数名.prototype.方法=function(){}

继承


原型链


在 ECMAScript 中,实现继承主要是依靠原型链来实现的。一个原型对象是另一个原型对象的实例,相关的原型对象层层递进,就构成了实例与原型的链条,就是原型链。


基本用法


父构造函数.prototype = new 子构造函数();
原型链虽然很强大,可以用来实现继承,但是也存在问题:
对原型对象的修改会影响到所有通过该原型创建的对象
创建子类型时的实例时,不能向父类型的构造函数中传递参数


借用构造函数


借用构造函数又称为伪造对象或经典继承。
借用构造函数的基本思想是在子类构造函数中使用 ca11()或 apply()方法调用父类构造函数,并将子类实例作为参数传递给父类构造函数。


基本用法

// 应用某一对象的一个方法,用另一个对象替换当前对象。
apply([thisobj[,argArray]]);
// 调用一个对象的一个方法,以另一个对象替换当前对象。call([thisobj[,arg1[,arg2[,[,argN]]]]]);
借用构造函数可以用来实现继承,但是也存在问题:
只继承了父类构造函数的属性和方法,没有继承父类原型的属性和方法。
无法实现构造函数的复用。


组合继承


组合继承又称为经典继承,
组合继承是将原型链和借用构造函数的技术组合到一块,发挥二者之长的一种继承模式。组合继承的思路是使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值