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.pswp.cn/news/257234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257234.shtml
英文地址,請注明出處:http://en.pswp.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…