JS中對象基本使用
<script type="application/javascript" charset="utf-8">//Objcet 所有類的基礎類/*** 創建對象方式一*/
// var obj=new Objcet();/** 創建對象方式二,注意 '{}'不可忘記寫* */var obj = {};obj.name = "什碼情況";obj.age = 20;obj.sex = "男";obj.introduction = "我是IT男!!!";obj.say = function(){console.log("哈嘍,程序猿真好!");}obj.eat = function(){console.log("吃飯中。。。。");}console.log("我叫:"+obj.name);obj.say();/*** delete :該操作符用于刪除對象的屬性或方法*/console.log("刪除前obj.age: "+obj.age);delete obj.age;console.log("刪除后obj.age: "+obj.age);console.log("刪除前obj.eat: "+obj.eat);delete obj.eat;console.log("刪除后obj.eat: "+obj.eat);/*** for ... in 遍歷對象的屬性*/console.log("for..in 開始遍歷對象...");for(var attr in obj){console.log("obj["+attr+"] : "+obj[attr]);}console.log("for..in 結束遍歷對象...");/*** constructor: 保存對象的創建函數* hasOwnProperty(PropertyName):檢測給定的屬性在當前實例對象中(而不是原形中)是否存在* isPrototypeOf(Object):檢測原型* propertyIsEnumerable(propertyName):檢查對象的propertyName屬性是否能被枚舉(即可以使用:for..in..遍歷)* toLocaleString():返回對象的字符串表示。該字符串與執行環境的地區對應。* toString():返回對象的字符串表示。* valueOf():返回對象的字符串、數值或布爾表示。*/console.log("obj.constructor: "+obj.constructor);console.log("obj.hasOwnProperty('age'): "+obj.hasOwnProperty("age"));console.log("obj.hasOwnProperty('sex'): "+obj.hasOwnProperty("sex"));console.log("obj.propertyIsEnumerable('sex'): "+obj.propertyIsEnumerable("sex"));console.log("obj.valueOf(): "+obj.valueOf());/********************* 【開始】運行結果 ********************我叫:我叫:什碼情況哈嘍,程序猿真好!刪除前obj.age: 20刪除后obj.age: undefined刪除前obj.eat: function (){console.log("吃飯中。。。。");}刪除后obj.eat: undefinedfor..in 開始遍歷對象...obj[name] : 什碼情況obj[sex] : 男obj[introduction] : 我是IT男!!!obj[say] : function (){console.log("哈嘍,程序猿真好!");}for..in 結束遍歷對象...obj.constructor: function Object() {[native code]}obj.hasOwnProperty('age'): falseobj.hasOwnProperty('sex'): trueobj.propertyIsEnumerable('sex'): trueobj.valueOf(): [object Object]********************* 【結束】運行結果 ********************/</script>
Example 1: JS 實現Map對象
<script type="text/javascript" charset="utf-8">function Map(){//空的對象容器,承載鍵值對//注意對象要使用{}來聲明,否則報語法錯誤var obj={}; this.size=function(){var count=0;for(var item in obj){count++;}return count;};this.put=function(key,value){obj[key]=value;}this.get=function(key){return obj[key];}this.remove=function(key){delete obj[key];}this.eachMap=function(fu){for(var key in obj){fu(key,obj[key]);}}}var m=new Map();m.put('01','abc');m.put('02',true);m.put('03',123);m.put('04',456);m.put('05',false);m.put('06',null);m.put('07',0);m.put('08',undefined);console.log("m.size(): "+m.size());console.log("m.get('03'): "+m.get('03'));console.log("m.remove('03'): "+m.remove('03'));console.log("m.get('03'): "+m.get('03'));console.log("m.get('06'): "+m.get('06'));console.log("m.get('08'): "+m.get('08'));m.eachMap(function(key,value){console.log("eachMap: "+key+" , "+value);});/********************* 【開始】運行結果 ********************m.size(): 8m.get('03'): 123m.remove('03'): undefinedm.get('03'): undefinedm.get('06'): nullm.get('08'): undefinedeachMap: 01 , abceachMap: 02 , trueeachMap: 04 , 456eachMap: 05 , falseeachMap: 06 , nulleachMap: 07 , 0eachMap: 08 , undefined ********************* 【結束】運行結果 ********************/ </script>
Example 2: JS 刪除數組中重復的元素
<script type="text/javascript" charset="utf-8">// js對象特性:在js對象中key是永遠不重復的function toObject(array){var obj={};for(var index in array){obj[array[index]]=true;}return obj;}function keys(obj){var arr=[]; //私有對象for(var attr in obj){if(obj.hasOwnProperty(attr)){ //查看attr屬性是否是Obj實例對象的屬性arr.push(attr);}else{console.log(arr+" ,不是當前實例對象的屬性!");}}return arr;}var arr=[2,4,2,6,7,2,5,9,90,5];function uniq(arr){return keys(toObject(arr))}console.log(uniq(arr));/********************* 【開始】運行結果 ********************["2", "4", "5", "6", "7", "9", "90"]********************* 【結束】運行結果 ********************/ </script>