您的位置:首页 > Web前端 > JavaScript

JS如何创建对象及实现继承

2015-05-13 16:04 549 查看

JS如何创建对象及实现继承

以下整理自《JAVASCRIPT高级程序设计》

 

【原型】

1. 什么是原型?

    我们创建的每一个函数都有一个prototype(原型)属性,这个属性是一个对象,

它的用途是包含有特定类型的所有实例共享的属性和方法。

2. 只要创建了一个新函数,就会为该函数创建一个prototype属性。

在默认情况下,所有prototype属性都会自动获得一个constructor(构造函数)属性,

这个属性包含一个指向prototype属性所在函数的指针。

这样,函数及函数原型之间形成了循环指向。

3. 每当调用构造函数创建一个新实例后(即"new constructor()"这样的形式),

该实例的内部将包含一个指针(一般名为__proto__),指向构造函数的原型属性。

 

【创建】
组合使用构造函数和原型模式

特点:

实例属性在构造函数中定义

共享属性和共享方法在原型中定义



 

【继承】
组合继承模式



call(obj [, args])方法的含义:我们知道,在面向对象的语言中,对象的方法通常有一个隐藏的参数this,用来指明具体的对象。

在js中,call方法实现了上面的效果,A.x.call(B)实际上是指在B对象上调用方法x。

与call方法类似的还有apply方法,两者的不同是apply只有两个参数,第一个参数与call相同,第二个参数是一个参数数组。

========================================

PS: new操作符创建实例的过程

1. 创建一个新对象

2. 将构造函数的作用于赋给新对象(因此this就指向了这个新对象)

3. 执行构造函数的代码(为这个新对象添加属性)

4. 返回新对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: