详解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 相关文章推荐
单独使用CKFinder选择图片的方法
Aug 21 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
Feb 07 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
Vue数据驱动模拟实现5
Jan 13 Javascript
Bootstrap笔记之缩略图、警告框实例详解
Mar 09 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
vue-cli项目修改文件热重载失效的解决方法
Sep 19 Javascript
vue-router源码之history类的浅析
May 21 Javascript
JS多个异步请求 按顺序执行next实现解析
Sep 16 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
Dec 10 Javascript
JavaScript Date对象功能与用法学习记录
Apr 28 Javascript
JavaScript Html实现移动端红包雨功能页面
Jan 10 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
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
JS 控制CSS样式表
2009/08/20 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
常用DOM整理
2015/06/16 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
深入理解Vue nextTick 机制
2018/04/28 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
使用python加密自己的密码
2015/08/04 Python
利用python代码写的12306订票代码
2015/12/20 Python
python K近邻算法的kd树实现
2018/09/06 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
python实现自动解数独小程序
2019/01/21 Python
如何将json数据转换为python数据
2020/09/04 Python
python 如何停止一个死循环的线程
2020/11/24 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
海外淘书首选:AbeBooks
2017/07/31 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
物业管理个人自我评价
2013/11/08 职场文书
研发工程师的岗位职责
2013/11/18 职场文书
零件设计自荐信范文
2013/11/27 职场文书
洗发水广告词
2014/03/13 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
小学中队活动总结
2015/05/11 职场文书
同学聚会致辞集锦
2015/07/28 职场文书