详解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的15款幻灯片插件
Apr 10 Javascript
jquery表单验证使用插件formValidator
Nov 10 Javascript
javascript实现当前页导航激活的方法
Feb 27 Javascript
易操作的jQuery表单提示插件
Dec 01 Javascript
创建一个类Person的简单实例
May 17 Javascript
jQuery表单插件ajaxForm实例详解
Jan 17 Javascript
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
Sep 10 Javascript
React优化子组件render的使用
May 12 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
jquery中为什么能用$操作
Jun 18 jQuery
vue elementui tree 任意级别拖拽功能代码
Aug 31 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从数组中删除元素的四种方法实例
2017/05/12 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
Python中的异常处理学习笔记
2015/01/28 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
python字典的遍历3种方法详解
2019/08/10 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
英语翻译系毕业生求职信
2013/09/29 职场文书
行政人员工作职责
2013/12/05 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
幼师辞职信范文
2015/02/27 职场文书
师德师风培训感言
2015/08/03 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL