详解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 Array对象基础知识小结
Nov 16 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
Jul 10 Javascript
利用进制转换压缩数字函数分享
Jan 02 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
Feb 23 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
Apr 03 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
Oct 28 Javascript
如何提高Dom访问速度
Jan 05 Javascript
babel基本使用详解
Feb 17 Javascript
详解react阻止无效重渲染的多种方式
Dec 11 Javascript
vant 自定义 van-dropdown-item的用法
Aug 05 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 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 json转换成数组形式代码分享
2014/11/10 PHP
PHP中使用curl入门教程
2015/07/02 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
jquery 使用点滴函数代码
2011/05/20 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
2017/03/28 jQuery
分析JavaScript数组操作难点
2017/12/18 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
Python函数中定义参数的四种方式
2014/11/30 Python
Python脚本实现下载合并SAE日志
2015/02/10 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
小学语文教学反思
2014/02/10 职场文书
《画》教学反思
2014/04/14 职场文书
艾滋病宣传标语
2014/06/25 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
安全先进班组材料
2014/12/26 职场文书
行政主管岗位职责
2015/02/03 职场文书
怎样写工作总结啊!
2019/06/18 职场文书