位置: 编程技术 - 正文

javascript object oriented 面向对象编程初步

编辑:rootadmin
用 new Object() 来创建对象在javascript里有几种创建对象的方法,在不同的场合可用不同的方法.最简单的就是用 new 操作符,例如: 我们在这个例子里定义了person这个对象,然后加入了它的属性和方法.在这个例子里,自定义的方法里有两个属性. 用文字记号Literal Notation创建对象用文字记号也可以创建对象,但要javascript 1.2以上版本.它的创建形式是多样的. 文字记号可是是数组,也可以是任意的javascript表达式或值. 用 new 操作符或文字记号创建一个自定义对象都是简单的,也是符合逻辑的.但它最大的缺点就是结果不可复用.也不能很容易的用不同的版本初始化创建对象.例如上面 的第一个例子,如果 person 的 name 不是 "Tim Scarfe",那样我们不得不重新定义整个对象,仅仅为了适应它的一点点改变. 对象的构造和原型 在OOP的世界里,用先前的方法定义对象在许多场合都有限制.我们需要一种创建对象的方法,类型可以被多次使用而不用重新定义.对象在实例化时每次都可以按需分配不同的值.实现这个目标的标准方法是用对象构造器函数. 一个对象构造器只不过是个有规则的javascript函数,它就象一个容器(定义参数,调用其他函数等等).它们两者所不同的是构造器函数是由 new 操作符调用的.(你将在下面的例子中看到).基于函数语法形式的对象定义,我们可以使它工作得最好. 让我们用现实世界中的猫来举个例子.猫的 name 和 color 是猫的属性.meeyow(猫叫)是它的一个方法.重要的是任何不同的猫都可能有不同的 name 和 meeyow 的叫声.为了建立适应这些特征的对象类,我们将使用对象构造器. 在这里,函数 cat() 是一个对象构造器,它的属性和方法在函数体里用this来定义,用对象构造器定义的对象用 new 来实例化.主意我们如何非常容易的定义多个cat 的实例.每一个都有自己的名字,这就是对象构造器带给我们的灵活性. 构造器建立了对象的蓝图.并不是对象本身.在原型里增加方法. 在上面我们看到的例子里,对象的方法是在构造器里定义好的了.另外一种实现的途径是通过原型(prototype).xxx 原型是javascript继承的一种形式.我们可以为对象定义好后,再创造一个方法.原来所有对象的实例都将共享.让我们来扩展最初的 cat 对象.增加一个改名的方法.用 prototype 的方式. 就象你所看到的.我们仅只用了 关键字 prototype 实现了在对象定义后马上增加了changeName方法.这个方法被所有的实例共享. 用原型(prototype) 重载 javascript 对象 原型 在自定义对象和有选择性的重载对象上都可以工作.比如 Date() 或 String 这可能是无止境的. 子类和超类 在JAVA 和C++里,有关于类层次的外在概念.每一个类能有一个角色. In Java and C++, there is an explicit concept of the class hierarchy. i.e. Every class can have a super class from which it inherits properties and methods. Any class can be extended, or sub-classed so the resulting subclass can inherit its parent's behavior. As we have seen, javascript supports prototype inheritance instead of class based. It's possible for inheritance to happen other ways, however. The following is an example of inheritance through functions. 下面一个例子演示了如何继承通过function . 基于继承的原型是遥远的.为 javascript 应用程序在许多场合. (基于原型的继承在许多javascript的应用场合是非常有用的.) 对象作为联合数组 正如你所知, (.)操作符能够用来存储.[] 操作符用来操作数组. <script language="javascript" type="text/javascript"> <!-- // These are the same object.property object["property"] //--> </script> <SCRIPT LANGUAGE="javascript"> <!-- function Circle (xPoint, yPoint, radius) { this.x = xPoint; this.y = yPoint; this.r = radius; } var aCircle = new Circle(5, , ); alert(aCircle.x); alert(aCircle["x"]); //--> </SCRIPT>How do I loop through properties in an object? You need to use a for/in loop. 我们可以通过for in循环来遍历对象的属性。 <script language="javascript" type="text/javascript"> <!-- var testObj = {prop1 : "hello", prop2 : "hello2", prop3 : new Array("hello",1,2) } for(x in testObj) alert( x + "-" + testObj[ x ] ) //--> </script> <SCRIPT LANGUAGE="javascript"> <!-- var Circle = { x : 0, y : 1, radius: 2 } // another example for(p in Circle) alert( p + "-" + Circle[ p ] ) //--> </SCRIPT> The important thing to notice is that in the object syntax the property is an identifier, whereas in the array syntax, it's a string. The obvious benefits of using an array syntax to access an object is because of the literal data type, you can easily concat strings and play around with them to access an object. For this to work with the standard syntax, an eval() would need to be used. 应该值得注意的是对象的属性只是一个标识字符,尽管在一个数组里是一个字符串,因为是一个literal的数据类型,所以有利于使用数组的方式的操作一个对象。你也可以很容易的存取一个对象在标准的语句中。这个时候eval()函数可能用得到。<script language="javascript" type="text/javascript"> <!-- testObj = { prop1 : "hello", prop2 : "hello2", prop3 : new Array("helloa",1,2) } for(x in testObj) alert( x + "-" + testObj[ x ] ) var prop3 = testObj["prop3"]; alert(prop3); //alert(prop[1]); alert(typeof(prop3)); alert(eval(prop3)[1]); alert(typeof(eval(prop3)[1])); //--> </script> 网上的东西错误的太多了,gimoo.net修正后的测试下 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

推荐整理分享javascript object oriented 面向对象编程初步,希望有所帮助,仅作参考,欢迎阅读内容。

javascript object oriented 面向对象编程初步

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

js宝典学习笔记(上) 1.document.write();输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document-html-(head,body)4.一个浏览器窗口中的DOM顺序是:window-(navigator,screen,history,location,document

JS宝典学习笔记(下) .JS中的焦点顺序:document.getElementByid("表单元素").tabIndex=.innerHTML的值是表单元素的值:如pid="para""howareemyou/em"/p,则innerHTML的值就是:howareemyou/em.innerTEXT

javascript基础的动画教程,直观易懂 直接点击观看,可以下载

标签: javascript object oriented 面向对象编程初步

本文链接地址:https://www.jiuchutong.com/biancheng/384865.html 转载请保留说明!

上一篇:javascript编程起步(第七课)(js 编程)

下一篇:JS宝典学习笔记(下)(js教程)

  • 中型企业的标准是什么 划分标准
  • 我可以通过什么知道明天的天气情况
  • 等线补交以前年度附加税会计分录是?
  • 公司租用个人房屋如何记账
  • 附加税扣款比例
  • 小规模纳税人外账处理
  • 坏账准备计入营业收入如何报年报
  • 2019年残保金申报时间
  • 冲减存货的会计分录
  • 建筑业营改增主要政策一览表
  • 上级拨付的固定资产增加类型是什么
  • 计提的费用年底要冲回吗
  • 工程围挡做法
  • 补充协议如何生效
  • 货物抵扣货款分录
  • 购入技术服务怎么结转成本的
  • 预付账款 费用
  • 法人存入公户实收资本可以还其他应付款吗
  • 个人独资企业税率表2023最新
  • 收到去年未计提折旧费
  • 离职员工竞业限制协议
  • 园林绿化工程税点
  • 车船使用税是否必须交
  • 企业进项发票不够
  • 单位杂工费报销计什么科目
  • 代销返还
  • 固定资产报废需要在固定资产系统中
  • 无法访问您可能没有权限使用资源
  • 企业销售应如何做
  • 发生销售折让会计分录
  • win10怎么设置win7开始菜单
  • 苹果电脑双系统好不好
  • 其他业务成本主要有哪些
  • php实战开发教程
  • linux解压安装
  • 进货返利怎么入账
  • 递延所得税资产和负债怎么理解
  • 收汇金额和出口金额差额大怎么办
  • html可以描述什么
  • 银行存款也有窍门
  • 实现会话跟踪的两种方式
  • vue.js简介
  • bzip2命令压缩后无法保存原文件
  • 超市账目月底怎么核算
  • 税务三流一致是什么意思
  • 全国通用机打销售票真伪
  • 专用发票必须按照销售方开户行及账号付款吗
  • 无形资产资产处置损益怎么算
  • 送货运杂费属于什么收入
  • 无形资产是有在期资产吗
  • 一般纳税人开普票税率是多少
  • mysql常用语
  • 企业发行债券的优点有哪些
  • 发票开错作废如何处理?
  • 内部往来科目设置在哪类下
  • 企业年底亏损怎么结转
  • 分公司非独立核算企业所得税税率
  • 内账的表格怎么做
  • 政府投资资产会计核算科目
  • 直接计入管理费用的税金有哪些
  • 100%直接控制的母子公司之间,母公司向子公司
  • 原始凭证按什么分
  • 进口货物例题
  • 现金日记账1月怎么记账
  • 账务不实与账实不符
  • Mac安装不了iTunes
  • 新移动硬盘安装视频教程
  • mac电脑打开safari
  • win8打开蓝牙设置
  • windows开启快速启动
  • shell脚本tr
  • shell脚本中执行echo卡住
  • bootstrap tooltip
  • 浅谈python
  • python如何判断一个变量的类型
  • js怎么写java代码
  • python 技巧总结
  • 命令适用于
  • arm兼容库安卓x86
  • 电子税务局查询一般纳税人资格
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设