JavaScript学习随记——对象
2015-10-20 22:30
831 查看
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: undefined for..in 开始遍历对象... obj[name] : 什码情况 obj[sex] : 男 obj[introduction] : 我是IT男!!! obj[say] : function (){ console.log("哈喽,程序猿真好!"); } for..in 结束遍历对象... obj.constructor: function Object() { [native code] } obj.hasOwnProperty('age'): false obj.hasOwnProperty('sex'): true obj.propertyIsEnumerable('sex'): true obj.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(): 8 m.get('03'): 123 m.remove('03'): undefined m.get('03'): undefined m.get('06'): null m.get('08'): undefined eachMap: 01 , abc eachMap: 02 , true eachMap: 04 , 456 eachMap: 05 , false eachMap: 06 , null eachMap: 07 , 0 eachMap: 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>
相关文章推荐
- javascript 绑定事件
- ExpressJS基础概念及简单Server架设
- js常用内置方法和对象
- threejs构建web三维视图入门教程
- javascript中的模式解析——工厂模式
- EXTJS 密码确认与验证
- js函数
- JavaScript学习随记——数组二
- JSP的9大内置对象及4个作用域
- js小妙用
- 你不知道的JavaScript--Item12 undefined 与 null
- 你不知道的JavaScript--Item12 undefined 与 null
- Extjs之PagingToolbar
- JavaScript arguments对象
- artTemplate -- 性能卓越的 js 模板引擎
- [工作]重复性工作(未完)
- JavaScript基础学习笔记
- JS模块化历程
- Javascript模块化编程
- JS 之性能优化(2)