javascript学习3——javascript面向对象(上)
来源:互联网 发布:网络乞丐 编辑:程序博客网 时间:2024/05/18 07:01
JS中的对象
在JS中也一样,everything is object,对象是一切的基础。
对象就是包含一组变量和函数的集合实例。通常对象由类派生而来,而类定义了对象拥有的属性和方法。如果你的脚本都是对象之间的交互操作,那么就可以说这个脚本是面向对象的脚本。JavaScript是一种基于原型(ptototype)的面向对象的语言,没有类的概念,所有的一切都派生自现有对象的一个副本。
JS中的对象分为两类:
1、Function对象,例如alert()函数可以使用参数改变此类对象的功能如:alert('kfkf');
2、Object对象,这类对象无法像Function对象那样调用,而且具有固定的功能。
JS中的继承
javascript是基于原型的面向对象,这就导致无法从一个类扩展出另一个类的底层类结构。在JS中继承是通过简单的从一个对象原型向别一个对象原型复制方法而实现的。
我们看下面一个例子:
<script type="text/javascript">function init(){var person=new Object();person.getName=function(){alert('person name');}person.getAge=function(){alert('person age');}//创建另一个对象var student=new Object();//创建一个本身的方法student.getStuNum=function(){alert('student num');};//继承person的getName方法student.getName=person.getName;//重新定义person的getName方法person.getName=function(){alert('person1 name');}student.getAge=person.getAge;student.getName();person.getName();}window.onload=init;</script>
它的结果:
通过这个例子,我们就能理解上面的内容了。
对象成员
对象=关联数组=属性包=存储体
在javascript里只有对象访问操作
原型/对象 属性包
原型只存在于function中,它实质就是一个对象被创建后引挚默认创建一个空的prototype对象,既然对象是一个属性包,那么原型也就是一个属性包。
原型中读的时候,从原型链上读,写的时候往自己里写。
请看如下例子:
<script type="text/javascript">function object2(){};function object3(){};object3.prototype=new object2();Object.prototype.foo=function(){alert('object.prototype.foo');};aObj=new object3();aObj.foo();object2.prototype.foo=function(){alert('object2.prototype.foo');};aObj.foo();</script>
运行结果:第一次:object.prototype.foo 第二次:object2.prototype.foo
下图可以帮助理解:
window对象
覆盖作用域链
看如下例子:
<script type="text/javascript">function override(){var alert=function(message){window.alert('override'+message);};alert('alert');window.alert('window.alert');}override();window.alert('window.alert from outside');</script>
- javascript学习3——javascript面向对象(上)
- javascript学习4——javascript面向对象(中)
- javascript学习5——javascript面向对象(下)
- JavaScript入门学习笔记(3)—— 面向对象
- (转)JavaScript 面向对象程序设计(上)——封装
- JavaScript 面向对象程序设计(上)——封装
- JavaScript 面向对象程序设计(上)——封装
- JavaScript 面向对象程序设计(上)——封装[转]
- JavaScript 面向对象程序设计(上)——封装[转]
- JavaScript 面向对象程序设计(上)——封装
- JavaScript 面向对象程序设计(上)——封装[转]
- JavaScript 面向对象程序设计(上)——封装
- JavaScript 面向对象的学习记录(上)
- JavaScript学习总结——Javascript面向(基于)对象编程
- JavaScript学习随记——面向对象编程(继承)
- javascript面向对象学习笔记(一)——属性
- JavaScript学习——面向对象的程序设计(一)
- JavaScript学习——面向对象的程序设计(二)
- Mastering Debugging in Visual Studio 2010 - A Beginner's Guide
- 因为孩子和爱人吵架
- 当你输入一个网址的时候,实际会发生什么?
- MySQL-SQL解决方案
- CodeForeces 35D
- javascript学习3——javascript面向对象(上)
- 01_初级_Java之美[从菜鸟到高手演变]之Java学习方法
- 02_初级_Java之美[从菜鸟到高手演变]之字符串的处理
- 硬盘安装CentOS 6.0(图)
- 03_初级_Java之美[从菜鸟到高手演变]之类与对象(一)
- 提升Java性能的技巧
- 04_初级_Java之美[从菜鸟到高手演变]之类与对象(二)
- Swinghacks——自定义边框
- Android Wi-Fi Display(Miracast)介绍