您的位置:首页 > Web前端 > JavaScript

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: