javaScript(Object)
Object类型---基础
所有类的基础类(Object)
//创建方法(实例化对象):
var obj = new Object();//方式一
var obj={};//方式二
//对象设置属性
obj.name='张三';
obj.age=18;
obj['sex'] = '男';//属性赋值的另一种方式
obj.talk=function(){
alert("我了个去%^^#^@.....")
}
//对象的属性或方法的调用
alert(obj.name)
alert(obj.age)
obj.talk();
//delete(删除对象的属性或方法)
delete obj.age;
delete obj.talk()
//如何遍历一个js对象,for in 语句
for(var attr in obj){
alert(attr);//对象的属性
alert(obj[attr])//对象的属性的值
}
Object每个实例都有的属性和方法:
方法|描述|
--|:--😐--
constructor|保存着用于创建当前对象的函数(构造函数)
hasOwnProperty(propertyName)|用于检查传入的属性是否存在于当前实例对象中(而不是原型对象),返回true或false
isPrototypeOf(Object)|用于检查传入的对象是否是另一个对象的原型,检测原型的方法
propertyIsEnumerable(propertyName)|用于检查传入的属性是否能被for in 所枚举出来
toLocaleString()|返回对象的字符串,该字符串与执行环境的地区对应
toString()|返回对象的字符串
valueOf()|返回对象的字符串、数值或布尔值
用js模拟JAVA的Map
var m = new Map();
m.put('01','zhangsan');
m.put('02','nan');
m.put('03','20');
m.put('04','java');
function Map(){
var obj = {};//空对象容器,承装键值对
//put方法
this.put=function(key,value){
obj[key]=value;//把键值对绑定到obj
}
//size方法
this.size=function(){
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;
}
}
//删除方法
this.remove=function(key){
if(obj[key]||obj[key]===0||obj[key]===false){
delete obj[key];
}
}
}
//执行
alert(m.size())
alert(m.get('03'))
m.remove('03')
利用JS对象的特性,去掉数组总的重复项
思路:
- 1.将数组转化为对象
- 2.把数组中的值,变为JS对象中的key
- 3.把对象还原为数组
//将数组转化为JS对象
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)){
arr.push(attr);
}
}
return arr;
}
//调用
var arr = [2,4,5,22,2,5,22]
function changge(arr){
return keys(toObject(arr));
}
alert(changge(arr))