详解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 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
Javascript核心读书有感之语言核心
Feb 01 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
Angular.js基础学习之初始化
Mar 10 Javascript
JavaScript使用ZeroClipboard操作剪切板
May 10 Javascript
使用JavaScript实现链表的数据结构的代码
Aug 02 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
vue 组件内获取actions的response方式
Nov 08 Javascript
jQuery实现评论模块
Aug 19 jQuery
深入浅析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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
Python的函数嵌套的使用方法
2014/01/24 Python
python服务器端收发请求的实现代码
2014/09/29 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
Python datetime模块使用方法小结
2020/06/18 Python
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
出国考察邀请函
2014/01/21 职场文书
任命书模板
2014/06/04 职场文书
爱心捐书活动总结
2014/07/05 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
自我检讨报告
2015/01/28 职场文书
伏羲庙导游词
2015/02/09 职场文书
员工辞职信范文大全
2015/05/12 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python