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. 返回新对象
相关文章推荐
- js创建对象 对象如何继承 及一些工具函数
- JS 实现 创建类、继承、方法添加、对象克隆、数组封装操作
- 在没有类的情况下,JavaScript如何创建对象、实现继承?
- JS如何创建对象和继承对象
- JS如何创建对象和继承对象
- 【学习笔记六】 - js中 创建对象的模式与继承 及 js中实现块级作用域和函数私有变量 《js高程》6-7笔记
- 谈谈有关设计模式的思想精髓:变继承关系为组合关系、如何创建对象(单例、状态、装饰者模式)
- javascript(js)创建对象的模式与继承的几种方式
- 前端-JS基于原型面向对象(对象创建,继承,构造等)
- js 对象深复制,创建对象和继承
- js高级——原型对象继承的实现
- js创建对象的构造函数模式+原型模式和组合继承\Hybrid Pattern & combination inheritance
- js 创建对象与原型链继承
- 说说 JavaScript 如何实现对象继承
- JS中new的自定义实现创建实例对象
- javascript创建对象,以及实现继承的方法
- js中的对象创建与继承
- JS 如何创建对象、数据类型
- JS创建对象与继承总结
- 深入分析虚拟机创建对象的两种方式以及如何在并发情况下实现线程安全