《JS高级程序设计》PART3.对象基础

3.2对象应用

· 对象废除:如果一个对象有2个及以上引用,则要正确的废除该对象,必须将其所有引用都设置为null。

js和java一样,有垃圾回收机制,会自动收回已无引用指向的对象。

· 早绑定和晚绑定

绑定:把对象的接口和实例结合在一起的方法。

早绑定:指在实例化对象之前定义他的特性和方法;

玩绑定:指在编译器或解释程序在运行前,不知道对象的类型。ECMASCript采用的是晚绑定。

3.3对象类型

1.本地对象

· Array类

以下用示例来说明其用法:

var arry = new Array(10); //不知大小时,可以省略,在后面的代码中可以任意增加

var arry = new Array("red","green","blue");

alert(arry[1]);//"green"

var sCor = "red,green,blue";

var arry = sCor.split(",");//转化为Array对象

var sCor = "green";

var arry = sCor.split("");//使用空串分割,则会分成各个字符:"g,r,e,e,n"

Array有2个String具有的方法:concat():连接 /slice():截取部分内容

Array提供了栈的功能:

var stack = new Array;

stack.push("red");

stack.push("green");

alert(stack.toString());//"red,green"

var aa = stack.pop();//"green"

shift():将删除数组第一项,并作为函数值返回。/Unshift反之。

通过shift和push(),可完成队列的功能。

· Date类

var d = new Date(Date.parse("6/1/2011"));//如果传递的字符串无法转为日期,将为NaN

var d = new Date(Date.UTC(2011,0,6));//设置月份特别注意,因为其月的设置从0开始 (2011-1-6)

2.内置对象

ECMASCript中提供了2个内置对象:Global和Math;

Global的eval()方法:该方法就像整个ECMASCript解释程序,接受一个参数,将其解释为真正的ECMASCript语句,然后把它插入到该函数所在的位置。

3.宿主对象

所有非本地对象都是宿主对象,即由ECMASCript实现宿主环境的对象。所有的BOM和DOM对象都是宿主对象。

3.5定义类或对象

使用构造函数形式:

function Car (sColor,iDoor){

this.color = sColor;

this.doors = iDoor;

this.showColor = function(){

alert(this.color)

};

}

var oCar = new Car ('red',4);

var oCar2 = new Car("green",3);

注:对象的结构不用实现定义,直接在构造函数中按需取用。

以上创建对象中所拥有的函数为2份,出现内存浪费。(c++java中所有对象的函数共用一份)

改进:将函数提出来,在构造函数之后,用prototype添加.(prototype属性可用来定义方法)

Car.prototype.showColor = function(){ alert(this.color};

3.6修改对象

创建新方法:Number.prototype.toHexString = function(){return this.toString(16)};

重定义已有的方法:再定义一遍,就会覆盖,因为ECMASCript没有重载。

 

More:http://blog.donews.com/me1105/archive/2011/02/10/118.aspx

转载于:https://www.cnblogs.com/me115/archive/2011/02/10/1950945.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python迭代-如何对迭代器做切片操作

如何对迭代器做切片操作 问题举例 读取某个文件内容的100~300行内容,我们是否可以使用 类似列表切片的方式得到一个100~300行文件内容的生成器 分析 列表的切片操作其实是在重载方法__getItem__方法 可以通过file.readlines()后再做切片,内存会加载整个文…

如何让linux服务器同步互联网时间

今天在工作中需要搭建一个数据库集群s1,需要将节点A、节点B和节点C都加入集群,先在A节点上创建集群,然后将B和C节点加入到集群,但是在B和C加入到集群之前,会判断B与A、C与A的时间戳是不是在设置的2s~5s内,如…

Conda常见命令

Anaconda,Miniconda,Conda,Pip的区别: Anaconda:用于科学计算的python发行版,里面预装好了conda,某个版本的python,众多packages,科学计算工具等。Anaconda利用工具/命令conda来进行package和environment的管理&#x…

MySQL一张innodb表列个数的限制和engine的选择

在MySQL innodb存储引擎中,一张表中列的个数最大为4096。 其中在MySQL中,创建表时可以任意指定engine的类型,但是,考虑到join、union、union all等复杂的场景时,尽量每张表都用统一的engine。

Hibernate读书笔记

伟大的信息管理与信息系统专业,万恶的信息管理与信息系统专业。说这句话我是有根据的:因为这个专业雄心勃勃的想把自己的子弟培养成全面发展的人才但是结果则不然。两方面的原因:一部分在学生,但是一部分在这个专业。让我极其郁闷…

基于报文地址的策略路由配置示例

【实验拓扑】本文实验采用的交换机是H3C模拟器,下载地址如下: http://forum.h3c.com/forum.php? modviewthread&tid109740&highlightH3C%E6%A8%A1%E6% 8B%9F%E5%99%A8 有兴趣的朋 友可以在论坛上去下载 【组网需求】普通的报文转发是依据报文的…

html字体加大标签与写法介绍

在html中字体加大的标签为<big>&#xff0c;一般用于重要文字&#xff0c;醒目文字&#xff0c;让用户容易看到&#xff01; 字体加大: <big>写上你想写的字</big> 效果&#xff1a;未加大 加大 效果中我们能轻易分辨&#xff0c;加大和未加大的文字区别&am…

CustomValidator

使用服务器验证时 要注意 IsValid 需要再次进行判断转载于:https://www.cnblogs.com/spchenjie/archive/2011/03/02/1968968.html

MySQL单机版Recycle Bin回收站功能

最近调研了阿里的Recycle Bin回收站功能&#xff0c;可以保证数据不丢失。 为了防止开发或运维人员的误操作&#xff0c;比如DROP TABLE/DATABASE、TRUNCATE TABLE&#xff0c;这类DDL语句不具有可操作的回滚特性&#xff0c;而导致数据丢失,AliSQL 8.0(基于MySQL)新特性支持回…

Delphi纯代码连SQLite数据库,同时支持数据库的加密解密

//摘自&#xff1a;http://bbs.witbase.com/thread-1141-1-1.html Delphi纯代码连SQLite数据库&#xff0c;同时支持数据库的加密解密 Delphi纯代码连SQLite数据库&#xff0c;同时支持数据库的加密解密本文的内容包括&#xff1a;&#xff08;1&#xff09;一个实现了加密解密…

用STATSVN统计公司SVN代码修改

直接用LOG&#xff0c;BOSS还是不满意&#xff0c;那只好架上JDK&#xff0c;用STATSVN了。 跑得还顺利&#xff0c;只是具体代码没跑出来。。 但共用一个帐号&#xff0c;害人呀&#xff0c;还好有提交注释里有程序员的名字。。 STATSVN文档很简单&#xff0c;简单报告也就一个…

Informix IDS 11零碎治理(918考试)认证指南,第 7 部分: IDS复制(24)

SDS&#xff1a;看管可以使用 onstat 或零碎看管接口&#xff08;SMI&#xff09;表查察 SDS 效能器统计信息。本节品评争论以下主题&#xff1a;onstat 选项 sysmaster 表 旧事日志输出 onstat 选项可以使用 onstat -g sds 饬令查察 SDS 效能器统计信息。onstat 的输出取决于运…

leafLet入门教程兼leafLet API中文文档参考

英文文档参考&#xff1a;https://leafletjs.com/reference-1.3.4.html#popup 博客参考&#xff1a;https://blog.csdn.net/qq_36595013/article/details/83144874#leafLet_API__243 使用说明参考&#xff1a;https://www.cnblogs.com/cainiaomeng/p/6072139.html转载于:https:…

MySQL源码解读之数据结构-LF_DYNARRAY

MySQL的代码中实现了一个Lock Free的Hash结构&#xff0c;称作LF_Hash。MySQL的不少模块使用了LF_Hash&#xff0c;比如Metadata Lock就依赖于它。但由于使用的方法不正确&#xff0c;导致了bug#98911和bug#98624。理解LF_Hash的实现细节&#xff0c;可以帮助我们用好LF_Hash。…

Flex通过Blazeds利用Remoteservice与后台java消息推送

Flex通过Blazeds利用Remoteservice与后台java消息推送 准备工作&#xff1a;Myeclipse中先建立一个Web project工程&#xff0c;然后导入Blazeds的文件&#xff0c;再转换为Flex项目类型。前言&#xff1a;Flex 通过开源的BlazeDS消息服务来支持订阅及发布消息。这个消息服务管…

如何运行一个Vue项目

一开始很多刚入手vue.js的人&#xff0c;会扒GitHub上的开源项目&#xff0c;但是发现不知如何运行GitHub上的开源项目&#xff0c;很尴尬。通过查阅网上教程&#xff0c;成功搭建好项目环境&#xff0c;同时对前段工程化有了朦朦胧胧的认知&#xff0c;因此将环境搭建过程分享…

用上Linux后收集变得山穷水尽

作者: ginceo 出自: http://www.linuxdiyf.com   没用Linux时上彀总得先开防火墙&#xff0c;然后再开杀毒软件把守&#xff0c;假如少了这些步骤我的机子将遭到史无前例的毁伤&#xff0c;有的时分换来的是硬盘继续事项一小时。遇到网友发来的音讯还是毛骨悚然&#xff0c;…

MySQL5.7 常用系统表大全

MySQL5.7 默认的模式有&#xff1a;information_schema&#xff0c; 具有 61个表&#xff1b; m ysqL, 具有31个表&#xff1b; performance_schema&#xff0c;具有87个表; sys, 具有1个表&#xff0c; 100个视图. Information_schema数据库是MySQL自带的&#xff0c;它提供了…

Hibernate初学之CURD

Hibernate初学之CURD 以前学过JDBC的增删改查&#xff0c;感觉挺方便的&#xff0c;用hibernate框架则会更加简便&#xff0c; 关于hibernate的增删改查模块&#xff0c;我感觉用代码解释再合适不过了&#xff1b; 首先是导包问题&#xff1a;应用hibernate需要导十个包&#x…

innobackupex备份工具

Top NSD DBA1 DAY07 innobackupex备份工具1 innobackupex备份工具 1.1 问题 安装percona软件包innobackupex完整备份、增量备份操作。恢复数据1.2 步骤 实现此案例需要按照如下步骤进行。 步骤一&#xff1a;安装XtraBackup软件包 1&#xff09;了解软件包描述信息 [rootdbsvr1…