详解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 相关文章推荐
javascript 控制input只允许输入的各种指定内容
Jun 19 Javascript
点击标签切换和自动切换DIV选项卡
Aug 10 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
AngularJS使用angular-formly进行表单验证
Dec 27 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
Jan 21 Javascript
js两种拼接字符串的简单方法(必看)
Sep 02 Javascript
分分钟玩转Vue.js组件(二)
Mar 01 Javascript
详谈angularjs中路由页面强制更新的问题
Apr 24 Javascript
详解JavaScript的变量
Apr 04 Javascript
基于Fixed定位的框选功能的实现代码
May 13 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
May 15 Javascript
ant design vue的form表单取值方法
Jun 01 Vue.js
深入浅析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 cli 方式 在crotab中运行解决
2010/02/08 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
Python版中国省市经纬度
2020/02/11 Python
在python中修改.properties文件的操作
2020/04/08 Python
中学生获奖感言
2014/02/04 职场文书
家长评语和期望
2014/02/10 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
表彰会主持词
2014/03/26 职场文书
关于环保的建议书
2014/05/12 职场文书
原料仓仓管员岗位职责
2014/07/08 职场文书
承诺书样本
2014/08/30 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
美术教师求职信范文
2015/03/20 职场文书
获奖感言一句话
2015/07/31 职场文书