详解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 相关文章推荐
基于jquery 的一个progressbar widge
Oct 29 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
jQuery代码实现对话框右上角菜单带关闭×
May 03 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
Sep 13 Javascript
集合Bootstrap自定义confirm提示效果
Sep 19 Javascript
axios中cookie跨域及相关配置示例详解
Dec 20 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
Mar 27 Javascript
详解如何探测小程序返回到webview页面
May 14 Javascript
es6中比较有用的7个技巧小结
Jul 12 Javascript
webpack DllPlugin xxx is not defined解决办法
Dec 13 Javascript
浅析我对JS延迟异步脚本的思考
Oct 12 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 date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
js获取视频时长代码
2014/04/10 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python中函数传参详解
2016/07/03 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python自定义时钟类、定时任务类
2021/02/22 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
小学生自我评价范例
2013/09/24 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
垃圾桶标语
2014/06/24 职场文书
经理聘任证明
2015/03/02 职场文书
商场营业员岗位职责
2015/04/14 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript