ECMAScript中的object

Object是ECMAScript中使用最多的一种类型(就像java.lang.Object一样,Object是所有类的基础类)
两种创建方式(实例化对象):

var obj = new Object();
var obj = {};   //常用

//设置对象属性

obj.name = "张三";
obj.age = 20;
obj.sex="男";
obj['bri'] = "1900-01-09";
obj.say = function(){
    alert("helloworld");
}

//访问对象和方法

alert(obj.name);
alert(obj.age);
obj.say();

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

delete obj.age;
delete obj.say;
alert(obj.age);
obj.say();

//遍历对象,拿到对象属性的key和value

for(var attr in obj){
    alert(attr+" : "+obj[attr]);  //对象属性:属性值
}

**************object常用方法************
//Constructor 保存着用于创建当前对象的函数 (构造函数)
alert(obj.constructor);
var arr=[];
alert(arr.constructor);

//hasOwnProperty(propertyName)用于检测给定属性在对象中是否存在
alert(obj.hasOwnProperty(“name”));

isPrototypeOf(Object)检测原型

propertyIsEnumerable(propertyName)用于检测给定属性是否能用for-in枚举
alert(obj.propertyIsEnumerable(“name”));

***********object模拟java中的Map*********

function Map(){
    var obj = {};
    //put方法
    this.put = function(key,value){
        obj[key]= value;
    }
    //获取Map的size值
    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通过key删除元素
    this.remove = function(key){
        if( obj[key] ||  obj[key]===0 || obj[key]===false){
            delete obj[key];
        }
    }
    //遍历每个元素
    this.eachMap = function(fn){
        for(var attr in obj){
            fn(attr,obj[attr]);
        }
    }
}
//使用示例
var m = new Map();
m.put("01","abc");
m.put("02",0);
m.put("03",true);
m.put("04",new Date());         //put方法
alert(m.size());    //获取m的size  
alert(m.get("02"));    //根据key获取value
//m.remove("03");      //根据key删除元素
alert(m.get("03"));
m.eachMap(function(key,value){   //遍历元素
    alert(key+" : "+value);
})

******利用object对象特性,去掉数组重复项****
js对象特性 : 在js对象中key是永远不会重复的

var arr = [2,1,2,10,2,3,5,5,1,10,13];
//1、把数组转成一个js对象,把数组中的值变成js对象中的key
//2、把对象还原成数组
function toObj(arr){
    var obj = {};
    for(var ele in arr){
        obj[arr[ele]]="";
    }
    return obj;
}

function objToArr(obj){
    var arr = [];
    for(var attr in obj){
        if(obj.hasOwnProperty(attr)){
            arr.push(attr);
        }
    }
    return arr;
}

var reAttr = objToArr(toObj(arr));
alert(reAttr);     //1,2,3,5,10,13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值