首页 > 开发 > JS > 正文

详解js访问对象的属性和方法

2024-05-06 16:46:35
字体:
来源:转载
供稿:网友

对象的属性和方法统称为对象的成员。

访问对象的属性

在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。

二者区别:“ . ”表示法一般作为静态对象使用时来存取属性。而“[ ]”表示法在动态存取属性时就非常有用。

var object = {name:'xiaoming',age:29};var name1 = object.name;var name2 = object['name'];

访问对象的方法

在JavaScript中,只能用“ . ”来访问对象的方法。

function Person(){  this.name = 'xiaoming';  this.age = 29;  this.say = function(){    alert('This is person');  }     }var student = new Person();alert(student.name);alert(student['age']);student.say(); //使用" . "访问对象方法

引申出的两个题目:

1.判断一个字符串中出现次数最多的字符,统计这个次数

var str = 'Thisthebesttimesewerty';var obj = {};for(var i=0; i<str.length;i++){  var char = str[i]; // var char = str.charAt(i); //charAt()可返回指定位置的字符,i为字符的下标,从0开始  if(obj[char]){    obj[char]++; //char是obj对象的一个属性,如果存在次数加1  }else{    obj[char] = 1; //如果不存在,保存在obj中并计数为1  }} var max = 0;var maxChar = null;for(var key in obj){  if(max < obj[key]){    max = obj[key]; //出现最多次数max    maxChar = key; //出现次数最多的字符maxChar  }}

2.编写arraysSimilar函数,实现判断传入的两个数组是否相似。

具体需求:

1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。

2. 数组的长度一致。

3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.

当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过"。

function arraysSimilar(arr1,arr2){  if(!(arr1 instanceof Array) || !(arr2 instanceof Array)){     return false;  }    if(arr1.length !== arr2.length){     return false;  }   var i=0, n=arr1.length, countMap1={}, countMap2 = {}, t1, t2,  TYPES = ['string','boolean','number','undefined','null','function','date','window'];   for(i; i<n; i++){     t1 = typeOf(arr1[i]);     t2 = typeOf(arr2[i]);     if(countMap1[t1]){       countMap1[t1]++;     } else{       countMap1[t1] = 1;     }     if(countMap2[t2]){       countMap2[t2]++;     } else{       countMap2[t2] = 1;     }  }   for(i=0; i<TYPES.length; i++){    if(countMap1[TYPES[i]] != countMap2[TYPES[i]]){      return false;    }  }  return true;} function typeOf(ele){  var r;  if(ele === null){    r = 'null';  }  else if(ele === 'window'){    r = 'window';  }  else if(ele instanceof Array){    r = 'array';  }  else if(ele instanceof Date){    r = 'date';  }  else{    r = typeof(ele);  }  return r;}


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表