javascript 原型的简单理解
来源:互联网 发布:淘宝商家人工电话 编辑:程序博客网 时间:2024/06/07 06:30
JavaScript中对象的prototype属性:
JavaScript中对象的prototype属性,是用来返回对象类型原型的引用的。我们使用prototype属性提供对象的类的一组基本功能。并且对象的新实例会”继承”赋予该对象原型的操作。
实例:
(1).系统类库
var arr1=new Array(32,45,78,85); var arr2=new Array(53,12,55,21); //原型继承 Array.prototype.sum=function() { var result=0; for (var i = 0; i < this.length; i++) { result+=this[i]; } return result; }; alert(arr1.sum()); alert(arr2.sum());
(2)自己写的类
function createPerson(name,qq) { this.name=name; this.qq=qq; } createPerson.prototype.showName=function() { alert('我的名字是:'+this.name); }; createPerson.prototype.showQQ=function() { alert('我的QQ号是:'+this.qq); }; var obj=new createPerson('blue','342616'); var obj2=new createPerson('xian','363286'); obj.showName(); obj.showQQ(); obj2.showName(); obj2.showQQ();
在JavaScript中,prototype对象是实现面向对象的一个重要机制。每个函数就是一个对象(Function),函数对象都有一个子对象prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合。在通过new创建一个类的实例对象的时候,prototype对象的成员都成为实例化对象的成员。
1、该对象被类所引用,只有函数对象才可引用;
2、在new实例化后,其成员被实例化,实例对象方可调用。
同时,函数是一个对象,函数对象若直接声明成员,不用被实例化即可调用。
JavaScript通过一种链接机制来支持继承,而不是通过完全面向对象语言(如Java)所支持的基于类的继承模型。每个JavaScript对象都有一个内置的属性,名为prototype。prototype属性保存着对另一个JavaScript对象的引用,这个对象作为当前对象的父对象。
当通过点记法引用对象的一个函数或属性时,倘若对象上没有这个函数或属性,此时就会使用对象的prototype属性。当出现这种情况时,将检查对象prototype属性所引用的对象,查看是否有所请求的属性或函数。如果prototype属性引用的对象也没有所需的函数或属性,则会进一步检查这个对象(prototype属性引用的对象)的prototype属性,依次沿着链向上查找,直到找到所请求的函数或属性,或者到达链尾,如果已经到达链尾还没有找到,则返回undefined。从这个意义上讲,这种继承结构更应是一种“has a”关系,而不是“is a”关系
- javascript 原型的简单理解
- 简单理解javascript原型及原型链
- 简单理解JavaScript中的原型
- javascript原型的理解
- javascript 的原型理解
- JavaScript 原型的理解
- javascript原型的理解
- javaScript prototype原型的理解
- JavaScript中原型的理解
- JavaScript 原型模式的理解
- 理解JavaScript的原型属性
- javascript原型链的理解
- 简单粗暴地理解 JavaScript 原型链
- 简单粗暴地理解 JavaScript 原型链
- 用一张简单的图理解JavaScript对象的prototype原型
- JavaScript的原型原型链的深刻理解及运用
- 深入理解JavaScript的原型和原型链
- 深入理解JavaScript系列--------强大的原型和原型链
- js进行计算 获取TH对象
- 记录NAND FLASH 的一点知识
- ios系统中设置里各项的scheme
- 傅里叶变换和各种变换
- 利用函数的惰性载入提高javascript代码性能
- javascript 原型的简单理解
- 1020. 月饼 (25)
- Mybatis逆向工程自动生成代码
- iOS CGColorGetComponents
- linux文件系统目录详细说明(转)
- Android 百分比布局库(percent-support-lib) 解析与扩展
- iOS加急审核
- MarkDown 自学教程
- drawable下的非图片资源之selector