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>