20150206--JS巩固与加强4-02

20150206--JS巩固与加强4-02

五、属性遍历与删除

1、使用for…in…遍历自定义对象属性

基本语法:

for…in…(主要是完成对对象的遍历)

示例代码:

clip_image002

运行效果:

clip_image004

说明:在17行代码,不能使用p1.i形式进行自定义对象属性的遍历,否则会弹出undefined,原因是因为当代码识别到p1对象会认为p1.i是访问p1对象的i属性,由于没有定义i属性,所以系统会弹出3个undefined。

2、使用for…in…结构实现系统对象的遍历

window

document

示例代码:

clip_image006

运行效果:

clip_image008

3、属性删除操作

在Javascript,有时我们可能并不需要某个对象的某个属性,这个时候我们可以采用delete关键词实现对自定义属性的删除操作

基本语法:

delete对象.属性

删除指定属性

示例代码:

clip_image010

运行效果:

clip_image012

六、成员方法

1、基本语法:

对象.属性 = 函数的首地址

例1:为对象添加speak说话方法

clip_image014

例2:创建对象p2,为p2添加speak说话方法

clip_image016

观察以上代码,与例1中的p1对象的成员方法完全一致,似乎代码出现了重叠,改进上题

例3:改进上题

clip_image018

例4:由于以上代码有很多重复性的代码,那么我们可以对以上代码进行封装

clip_image020

七、json对象

1、什么是json

对象是指属性的无序集合

所谓“集合”是指名/值对的集合,名/值对之间是通过 ,逗号隔开的

在js中,可以使用{}来表示这个集合

2、基本语法

var 变量 ={};

第一种:{‘属性’:’属性的值’, ‘属性’:’属性的值’, ‘属性’:’属性的值’}

第二种:{“属性”:”属性的值”, “属性”:”属性的值”, “属性”:”属性的值”}

第三种:{属性:’属性的值’,属性:’属性的值’,属性:’属性的值’,}

3、快速入门

例1:通过json对象描述一个人的信息

clip_image022

4、json对象从“何”而来

clip_image024

通过以上代码可以证明:

json对象是Object类的一个实例,其实在Javascript中,Object类是所有类的基类,所有的对象都继承了Object类的属性。

json对象主要用于大批量数据的保存

例2:通过json对象保存多个人的信息

clip_image026

5、php与json

在php提供了两个生成与解析json格式的函数

json_encode(数组或对象)

数组通常采用关联性数组

json_decode(json格式字符串)

ajax xml

ajaj json

1)把数组转化为json格式的数据

clip_image028

2 )把对象转换成json格式的数据

clip_image030

说明:在json_encode函数中,目前只支持UTF-8,如果是GBK或GB2312请通过iconv进行转化,否则无法使用或无法得到正常数据

3)把二维数组转化为json格式数据

clip_image032

4)json_decode代码解析

json_decode($json对象,[bool])

功能:把json格式数据反转化

参数说明:

第一个参数是json格式数据

第二个参数是布尔类型的值,如果为true,则返回array数组类型的数据,如果是false或不填写,则直接返回stdClass类的实例(对象)

clip_image034

clip_image036

不加true参数效果

clip_image038

clip_image040

案例:通过php+json完成对历史上的今天api接口调用

http://www.juhe.cn/聚合数据

clip_image042

clip_image044

a)复制url地址http://japi.juhe.cn/toh/toh?key=您申请的KEY&v=1.0&month=11&day=1

参数说明

key:密钥

v:版本1.0

month:月份

day:天

b)通过接口可知,其属于get请求

clip_image046

效果如下:

clip_image048

6、为json对象添加成员方法

clip_image050

运行效果:

clip_image052

八、原型链

1、什么是原型对象?

答:当系统加载构造器时,系统会自动生成一个对象,我们把这个对象就称之为原型对象。

构造器与原型对象在内存中是相互独立的,但是其还有联系:

在构造器中存在一个prototype属性,指向原型对象

原型对象也存在属性指向构造器

clip_image054

2、原型对象作用?

当构造器的实例访问一个不存在的属性时,系统会自动到构造器的原型对象中去寻找,如找到则直接使用。

clip_image056

当我们在某些已存在的框架或对象中找不到我们想要属性或方法,我们可以借助原型对象,把需要的属性或方法追加到原型对象。

3、如何向原型对象中添加属性或方法

构造器.prototype.属性=属性的值

clip_image058

clip_image060

4、探讨:原型对象到底从何而来

说明:当系统创建原型对象,系统会自动执行以下代码

构造器.prototype = new Object();

由于原型对象都是Object类的实例,那么根据面向对象原则,我们的原型对象会自动继承Object类中属性和方法。

示例代码:

clip_image062

说明:当我们运行到第14行,系统自动访问p1对象的hasOwnPropery属性,但由于系统中并不存在hasOwnProperty属性,所以会到Person构造器的原型对象中去寻找,没有找到,又由于所有的原型对象都是Object类的实例,所以原型对象会自动继承Object类下面的所有的属性和方法,所以发现该行代码正常执行,原理图如下:

clip_image064

我们把以上情况就称之为原型继承,通过以上图解也可以证明,Object类是所有类的基类。

clip_image066

说明:在Javascript中,当某一个对象引用一个不存在属性或方法时,系统首先到当前构造器的原型对象中去寻找,如还找不到,其会到上一层原型对象中去寻找,直至Object原型对象,我们把这种链接查找关系就称之为原型链。

作业:扩展数组类的功能:(Array)

为每一个数组对象添加一个方法,可以查找某个元素的所在位置

var arr = [10,20,30,40,50];

arr.find(40);

2、扩展数字类的功能(Number)

为一个数字对象添加一个方法,该方法的参数为任意数目的整数,然后将所有参数累加到一起,并返回总和

vari = 10;

i.sum(10,30,40,50,60,60);

posted on 2016-05-05 23:59 山山未迟 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lifushan/p/5463893.html

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

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

相关文章

Python安装scikit-learn包

我先是按照网上说的下载了个setuptools,然后直接用这个工具去安装,可是安装scikit-learn包的时候确老是有错误,也不知道错误是啥,所以就不用setuptools来安装了。 我直接下载了scikit-learn包的安装包,直接安装就好了,…

如何计算机械人工作量,修订后太原理工大学本科教学工作量计算办法

太原理工大学教师本科教学工作量计算办法(修订)高等学校实行工作量考核制度是进行教学管理改革的一项重要措施。实践证明,教学工作量考核的实行,有利于稳定教学秩序、提高教学质量,有利于加强师资队伍的建设与管理,有利于保证教学…

面向对象课程 - T-shirt

拿到了一件谜一样的T-shirt 吓得我赶紧捏了下hbb 转载于:https://www.cnblogs.com/andwho/p/5465165.html

java问题

Collection 和 Collections的区别? Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 你所知道的集合类都有哪些&a…

javascript学习代码

点击改变p和div元素&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <m…

状态开关(ToggleButton)

状态开关&#xff08;ToggleButton&#xff09;&#xff1a; 常用属性&#xff1a;isChecked&#xff08;是否被选中&#xff0c;如true&#xff09; 监听&#xff1a;1.监听方法&#xff1a;setOnCheckedChangeListener 2.监听器&#xff1a;CompoundButton.OnCheckedChangeLi…

搭建一个基于http的yum服务器

基于http的yum服务器在集群中搭建一个基于HTTP的yum服务器&#xff0c;不仅安装速度变快了许多&#xff0c;还能扩展自己定制的rpm包放入yum服务器中&#xff0c;其他服务器只需要正常使用yum install即可批量安装统一经过定制的rpm包。这篇文章对习惯使用yum的人来说&#xff…

优迈系统服务器初始化,优迈系统手机操作器服务器操作使用说明.pptx

优迈西奥手机操作器说明服务器无法连接当数据线连接后如图显示&#xff0c;表示APP功能权限已授权。若无法显示菜单有以下几种情况&#xff1a;1、手机USB 未设置调试状态2、数据线有问题3、转接头问题正常连接两个红灯都亮服务器无法连接点击右上角设置菜单&#xff0c;子菜单…

冲刺第二阶段

转载于:https://www.cnblogs.com/lixin20/p/4549338.html

微信消息推送服务器吗,消息推送

# 消息推送接入微信小程序消息推送服务&#xff0c;可以两种方式选择其一&#xff1a;# 开发者服务器接收消息推送开发者需要按照如下步骤完成&#xff1a; 填写服务器配置验证服务器地址的有效性据接口文档实现业务逻辑&#xff0c;接收消息和事件# 第一步&#xff1a;填写服务…

MVC与WebApi中的异常过滤器

一、MVC的异常过滤器 1、自定义MVC异常过滤器创建一个类&#xff0c;继承HandleErrorAttribute即可&#xff0c;如果不需要作为特性使用直接实现IExceptionFilter接口即可&#xff0c;注意&#xff0c;该接口在System.Web.Mvc 命名空间下/// <summary> /// 自定义的MVC异…

windows下eclipse远程连接hadoop集群开发mapreduce

转载请注明出处&#xff0c;谢谢2017-10-22 17:14:09之前都是用python开发maprduce程序的&#xff0c;今天试了在windows下通过eclipse java开发&#xff0c;在开发前先搭建开发环境。在此&#xff0c;总结这个过程&#xff0c;希望能够帮助有需要的朋友。用Hadoop eclipse plu…

缩放浏览器时 背景图片固定

今天遇到一个很奇怪的问题&#xff0c;页面做好后&#xff0c;当缩放浏览器的时候&#xff0c;背景图片跟着移动&#xff0c;这就使本来做好的内容看起来像是错位了一样&#xff0c;跟背景对不上。 研究了一下发现&#xff0c;不需要fixed 之类的&#xff0c;只需要给body加个 …

医学影像后处理服务器系统的特点,【CT影像系统工作站怎么用】CT影像系统工作站好不好_使用技巧-ZOL软件百科...

为满足医疗卫生领域广大影像工作者、医生和医院管理工作者的需求&#xff0c;本单位应用当代计算机技术&#xff0c;影像处理技术以及网络技术开发的 CT型医学影像工作站&#xff0c;可与各种CT配接&#xff0c;不需对原机作任何改动。实现了数字化存储和接口标准化以及网络管理…

20145308刘昊阳 《Java程序设计》实验五报告

20145308刘昊阳 《Java程序设计》实验五 Java网络编程及安全 实验报告 实验名称 Java网络编程及安全 实验内容 1&#xff0e;掌握Socket程序的编写&#xff1b; 2&#xff0e;掌握密码技术的使用&#xff1b; 3&#xff0e;设计安全传输系统。 统计的PSP(Personal Software Pro…

FPL 2017最佳论文:如何对FPGA云发动DoS攻击?

第27届现场可编程逻辑与应用国际会议&#xff08;The International Conference on Field-Programmable Logic and Applications&#xff0c;FPL&#xff09;九月份在比利时根特召开。在FPL 2017上&#xff0c;一篇来自德国卡尔斯鲁厄理工学院&#xff08;Karlsruhe Institute …

应用程序唯一性

程序启动后&#xff0c;如果再次启动程序&#xff0c;不会出现2个程序&#xff0c;或者实现如Notepad已打开一个文件&#xff0c;再打开另外一个文件&#xff0c;则追加在Notepad界面上。 使用codeproject上别人编写的一个类&#xff0c;加在程序启动时即可。 sinstance.h /* M…

php的GC机制

在php5.3版本之前, php变量的回收机制只是简单的通过计数来处理(当refcount0时&#xff0c;会回收内存),但这样会出现一个问题 $aarray("str"); $a[]&$a; unset($a); 执行unset之前,$a的refcount 为2,执行unset之后,$a的refcout为1,因为是1不等于0,不能被回收内存…

Spring 框架的JDBC模板技术

1. 概述 Spring 框架提供了很多持久层的模板类来简化编程;Spring 框架提供的JDBC模板类: JdbcTemplate 类;Spring 框架提供的整合 Hibernate 框架的模板类: HibernateTemplate 类2. 环境搭建 2.1 创建数据库表结构 CREATE TABLE t_account(id INT PRIMARY KEY AUTO_INCREMENT,…

BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 )

数据 n < 30000 , 然后 O( n ) 的贪心也过了..... USACO 数据是有多弱啊 ( ps : BZOJ 1640 和此题一模一样 , 双倍经验 ) --------------------------------------------------------------------------------------#include<cstdio>#include<cstring>#include…