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


Posted in Javascript onOctober 25, 2018

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

访问对象的属性

在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 相关文章推荐
JS删除数组元素的函数介绍
Mar 27 Javascript
JQuery中SetTimeOut传参问题探讨
May 10 Javascript
js实现双击图片放大单击缩小的方法
Feb 17 Javascript
浅谈jQuery中setInterval()方法
Jul 07 Javascript
jQuery实现页面滚动时智能浮动定位
Jan 08 Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 Javascript
jQuery页面弹出框实现文件上传
Feb 09 Javascript
jQuery Chosen通用初始化
Mar 07 Javascript
jQuery实现的简单手风琴效果示例
Aug 29 jQuery
微信小程序实现简易table表格
Jun 19 Javascript
React生命周期原理与用法踩坑笔记
Apr 28 Javascript
node.js如何根据URL返回指定的图片详解
Oct 21 Javascript
深入浅析js原型链和vue构造函数
Oct 25 #Javascript
AngularJS 多指令Scope问题的解决
Oct 25 #Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 #jQuery
webpack打包非模块化js的方法
Oct 24 #Javascript
如何实现一个webpack模块解析器
Oct 24 #Javascript
vue项目中使用Svg的方法
Oct 24 #Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
Oct 24 #Javascript
You might like
深入分析PHP引用(&amp;)
2014/09/04 PHP
php实现字符串翻转的方法
2015/03/27 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
python代码制作configure文件示例
2014/07/28 Python
Python with用法实例
2015/04/14 Python
python实现俄罗斯方块
2018/06/26 Python
Python shelve模块实现解析
2019/08/28 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
绝对经典成功的大学生推荐信
2013/11/08 职场文书
我未来的职业规划范文
2014/01/11 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
教师简历自我评价
2014/02/03 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
教师听课评语大全
2014/12/31 职场文书
大学生实习推荐信
2015/03/27 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
入党积极分子考察意见
2015/06/02 职场文书
初二物理教学反思
2016/02/19 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang