對象
一蜡秽、定義
1、世間萬物都可以用對象表示
2漩仙、基于對象的編程語言中臭蚁,用對象給真實(shí)的事物建模
組成:屬性 方法
二、Javascript對象介紹
1讯赏、對象是javascript的一種數(shù)據(jù)類型
2垮兑、對象是一種復(fù)合值 它將很多值聚合在一起,可通過名字訪問這些值漱挎。
3系枪、對象也可以看做屬性的無序集合。每個屬性都是 名:值 對磕谅。
4私爷、屬性名是字符串,我們可以把對象看成是從字符串到值的映射膊夹。
5衬浑、對象的其他叫法:散列(hash) 散列表(hashtable) 字典(direction) 關(guān)聯(lián)數(shù)組(associative array)
三、JavaScript對象分類
1放刨、內(nèi)置對象 如: 數(shù)組 函數(shù) 日期 正則 等...
2工秩、宿主對象 htmlElement對象是Js的宿主瀏覽器的對象
? ? ? ? 瀏覽器中 window對象 (BOM 和 DOM)
? ? ? ? Node中 global 對象
3、自定義對象 用戶自定義的對象
四进统、對象的創(chuàng)建
1助币、使用對象直接量
? ? ? ? console.log({});
? ? ? ? console.log({list:[10,23,243]});
? ? ? ? var oop = {name:’大毛’,list:[1,2,3],getName:function(){}};
2、通過構(gòu)造函數(shù)(new)創(chuàng)建對象
? ? ? ? var oop = new Array();
? ? ? ? var oop = new Function();
? ? ? ? var oop = new Object();
? ? ? ? console.log(oop);
3螟碎、通過Object.create(); --ECMA5定義的方法
? ? ? ? 傳入原型
? ? ? ? 不繼承構(gòu)造函數(shù)和原型中的方法屬性
? ? ? ? var o = Object.create();
五眉菱、對象屬性值的獲取
.1、運(yùn)算符
? ? ? ? ECMA老版本.for 或者.of 是非法 ECMA5放寬了限制掉分,但是不建議使用
2俭缓、[ ] 運(yùn)算符
? ? ? ? var oop={name:’lili’,age:12}
? ? ? ? document.write(oop.name);
? ? ? ? document.write(oop[‘name’]);
3克伊、區(qū)別
? ? ? ? 當(dāng)屬性名為變量時 只能使用[ ]
六、屬性修改或設(shè)置
? ? ? ? oop.name="abc";
? ? ? ? oop['name']="abc";
七华坦、對象方法的調(diào)用
? ? ? ? var oop = {name:'aa',age:12,getInfo:function(a){
? ? ? ? ? ? ? ? document.write(a);return 100;}
? ? ? ? }
? ? ? ? oop.getInfo();
? ? ? ? oop.getInfo('aa');
八愿吹、全局對象window
1、預(yù)定義的對象 作用域鏈的頂層
2季春、用戶定義的變量是全局對象的屬性
3、用戶定義的函數(shù)是全局對象的方法
九消返、對象中的this
? ? ? ? 調(diào)用本方法的對象
十载弄、刪除對象屬性或方法
? ? ? ? delete oop.age;
? ? ? ? delete getInfo;
十一、對象屬性的檢測
? ? ? ? 使用關(guān)鍵字 in document.write('name' in o);
十二撵颊、對象的直接量書寫方式 --json格式
? ? ? ? var oop = {
? ? ? ? ? ? ? ? name:’xx’,
? ? ? ? ? ? ? ? age:13,
? ? ? ? ? ? ? ? getInfo:function(){},
? ? ? ? ? ? ? ? "if":[],? ? ? ? ? ? ? ? ? ? //關(guān)鍵字使用引號
? ? ? ? ? ? ? ? "color":'黑色',
? ? ? ? ? ? ? ? "cpu-i5":1500? ? ? ? ? ? ? //帶-使用引號
? ? ? ? }
十三宇攻、對象的遍歷
? ? ? ?var o = {x:1,y:2,z:3}
1、使用 for in 遍歷出對象的屬性名
? ? ? ?for(var i in o){document.write(i)}
2倡勇、使用Object.keys(o) 將屬性名遍歷到數(shù)組中
十四逞刷、數(shù)據(jù)結(jié)構(gòu)的認(rèn)識
1、https://developers.douban.com/? ? 遠(yuǎn)程數(shù)據(jù)API
2妻熊、http://api.douban.com/v2/movie/in_theaters
3夸浅、http://api.douban.com//v2/movie/coming_soon