javascript原型继承(第一篇)---对象
来源:互联网 发布:linux中mysql忘记密码 编辑:程序博客网 时间:2024/05/22 02:19
面向对象是当代编程的主流思想。无论是C++还是Java,都是面向对象的。严格意义上来讲,JavaScript并不是面向对象的, 但Javascript的灵活性足以让我们将其用作一门面向对象语言.
JavaScript是一种没有类的,面向对象的语言。它使用原型继承来代替类继承。
在学习原型继承前,我们来了解一下在javascript中对象的概念。可以先告诉大家,javascript的对象是不同于 Java, C++中对象的概念的。
学过java或者C++的人都知道,对象是什么、对象是怎样产生的。为了和javascript中的对象进行比较,还是举一个java下对象的例子
class person{string name;string birthday;public void sayhello{ System.out.println("hi,I am "+name+",I was born in "+birthday);}}person Amy=new person();
在java或C++里,对象是new一个class出来的,里面有字段,属性,方法.
但是在javascript中,对象里面的一切都是属性,只有属性,没有方法。那么方法如何表示呢?方法也是一种属性,表示为键值对的形式。
//通过字面量定义的对象var Amy = { name : "Amy", birthday : "1997年1月1日", say_hello : function(){ console.log( "hi,I am "+name+",I was born in "+birthday); } };
或者通过方法来创建一个对象:
function person() { name : "Amy", birthday : "1997年1月1日", say_hello : function(){ console.log( "hi,I am "+name+",I was born in "+birthday); } } var Amy = new person();
可以看到,javascript中function(函数)的作用相当于java中class(类)的作用,那么在javascript中一句很重要的话就是,
对象都是通过函数创建的。
也可能有读者说,你上面不是用字面量定义了一个对象吗? 不过这真的是一种“快捷方式”,在编程语言中,一般叫做“语法糖”。
不得不提的是,在javascript中,对象是个很大的概念。在说明这个问题之前,我们得说明一下,javascript的数据有两种,简单数据和复杂数据。简单数据有undefined,null,boolean,number和string这五种。复杂数据只有一种,即对象(object)。
那么,在javascript中,数组是对象,函数也是对象。
比如,数组:
var mycars=new Array();//Array()是一个函数,对象都是由函数创建的mycars[0]="Saab"mycars[1]="Volvo"mycars[2]="BMW"
比如,函数:
var fn = function () { alert(100); }; fn.a = 10; fn.b = function () { alert(123); }//函数就作为对象被赋值了a、b两个属性
下一篇: javascript原型继承(第二篇)—继承的设计思想
- javascript原型继承(第一篇)---对象
- javaScript 基于原型的对象继承
- javascript数据类型,对象,继承及原型链
- javascript数据类型,对象,继承及原型链
- JavaScript 面向对象与原型、继承
- JavaScript 原型对象的继承方法
- JavaScript对象原型继承关系图
- javascript (对象继承)原型链
- Javascript对象和原型继承的理解
- javaScript对象 原型深入理解 继承
- JavaScript 面向对象思想以及原型、继承
- JavaScript 面向对象思想以及原型、继承
- JavaScript 面向对象思想以及原型、继承
- javascript面向对象(原型、继承)
- JavaScript 利用原型和原型链实现对象继承
- 原型模式和基于原型继承的JavaScript对象系统
- Javascript原型继承 javascript
- Javascript原型继承 javascript
- 1043. 输出PATest(20)
- 三维数据处理软件架构
- html和CSS基础学习(十三)
- 事件代理
- selector踩坑记
- javascript原型继承(第一篇)---对象
- viewpager踩坑记录
- 让listview显示几条数目,高度固定死
- 使用pandas优化Spark内存消耗(节省90%)
- PAT甲级1003---迷宫问题(DFS或Dijkstra)
- HashMap循环遍历方式及其性能对比
- DataTable fnRowCallback 使用
- ES6学习之promise对象
- HDU 3826 Squarefree number (素数)