详解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 对象成员的可见性说明
Oct 16 Javascript
jQuery select操作控制方法小结
May 26 Javascript
关于JavaScript的with 语句的使用方法
May 09 Javascript
JSON.stringify 语法实例讲解
Mar 14 Javascript
JS实现倒计时和文字滚动的效果实例
Oct 29 Javascript
js进行表单验证实例分析
Feb 10 Javascript
JavaScript取得键盘按下方向键是哪个的方法
Aug 04 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
Oct 27 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
js限制输入框只能输入数字(onkeyup触发)
Sep 28 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 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
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
python3.6+opencv3.4实现鼠标交互查看图片像素
2018/02/26 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
500行python代码实现飞机大战
2020/04/24 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
python装饰器代码深入讲解
2021/03/01 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
创建服务型党组织实施方案
2014/02/25 职场文书
农村改厕实施方案
2014/03/22 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
师德师风剖析材料
2014/09/30 职场文书
针对吵架老公保证书
2015/05/08 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers