javascript的对象

第二节    javascript的对象

在 javascript 中  Object 所有类的基础类 

定义对象 var obj = new Object();
建议这样 var obj={};
    //    给对象添加属性

                obj.name = 'sohucw';
                obj.age  = 20 ;
                //obj.sex  = '男';
                obj["birthday"] = '1990-08-07';
                obj.say = function(){
                    alert('hello world!');                    
                }
// 访问对象的属性或方法
console.info(obj.name);// sohucw;
......obj.say(); // hello world

// delete 操作符 删除对象的属性或方法的

delete obj.age ;
delete obj.say ;
console.info(obj.name)

console.info(obj.age); //  <span role="presentation" class="objectBox objectBox-undefined ">undefined</span> 

console.info(obj.sex);//男
obj.say(); // error 





遍历一个js对象 for in

for(var attr in obj){
console.log(attr +':'+ obj[attr]);
}
 //Constructor保存对象的创建函数
                //alert(obj.constructor);
                //var arr = [] ;
                //alert(arr.constructor);

                
                //hasOwnProperty(propertyName) 用于检测给定属性在对象中是否存在
                //alert(obj.hasOwnProperty('sex'));
                
                //isPrototypeOf(Object) 检测原型
                
                //检测给定的属性是否能被for in 所枚举出来
                //alert(obj.propertyIsEnumerable('say'));


简单的 对象就说到这里   下面给出 用  javascript  来 模拟 java中的map

 

function Map(){
					
					// private 
					var obj = {} ;// 空的对象容器,承装键值对
					
					// put 方法
					this.put = function(key , value){
							obj[key] = value ;		// 把键值对绑定到obj对象上
					}
					
					// size 方法 获得map容器的个数
					this.size = function(){
							var count = 0 ; 
							for(var attr in obj){
								count++;
							}
							return count ; 
					}
					
					// get 方法 根据key 取得value
					this.get = function(key){
						if(obj[key] || obj[key] === 0 || obj[key] === false){
							return obj[key];
						} else {
							return null;
						}
					}
					
					//remove 删除方法
					this.remove = function(key){
						if(obj[key] || obj[key] === 0 || obj[key] === false){
							delete obj[key];						
						}
					}
					
					// eachMap 变量map容器的方法
					this.eachMap = function(fn){
							for(var attr in obj){
								fn(attr, obj[attr]);
							}
					}
					
					
				}
			
				//模拟java里的Map
				var m = new  Map();
				m.put('01' , 'abc');
				m.put('02' , false) ;
				m.put('03' , true);
				m.put('04' , new Date());
				
				//alert(m.size());
				
				//alert(m.get('02'));
				//m.remove('03');
				//alert(m.get('03'));
				
				m.eachMap(function(key , value){
					 alert(key +" :"+ value);
				});


关于一个 javascript 面试题的反思 
题是这样的  :
var arr = [2,1,2,10,2,3,5,5,1,10,13];    // 要求去掉里面的重复的元素  方法有多重  在这里可以运用 js中对象的 key 的概念   因为对象中的key 是唯一的

下面是代码的实现  思路是这样的: 
// 1 把数组转成一个js的对象
// 2 把数组中的值,变成js对象当中的key
// 3 把这个对象 再还原成数组

     // 把数组转成对象
            function toObject(arr){
                var obj = {} ; // 私有的对象
                var j ;
                for(var i=0 , j= arr.length ; i<j; i++){
                        obj[arr[i]] = true ;
                }
                return obj ;
            }
            
            // 把这个对象转成数组
            function keys(obj){
                var arr = [] ; // 私有对象
                for(var attr in obj){
                    if(obj.hasOwnProperty(attr)){        //YUI底层代码
                        arr.push(attr);
                    }
                }
                return arr ;
            }
            
            //综合的方法 去掉数组中的重复项
            function uniq(newarr){
                return keys(toObject(newarr));
            }
            
            console(uniq(arr));

得到想要的结果的  
相信大家对 javascript中的 对象的概念有一定的了解了    本人也是刚入行不久  错误的地方请指出 共同学习进步       






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值