链式调用

  • 在每个函数内部return this

访问对象属性

  1. 点语法
  2. []中括号内是字符串或是变量

数组是特殊的对象

对象属性遍历

  • for in(遍历对象或数组) - 不必再用Object.keys那么麻烦了
for(var key in obj){console.log(obj[key])// obj.key返回undefined// 因为js引擎会转换为obj['key']
}
  • instanceof
console.log([] instanceof Array) // true
console.log([] instanceof Object) // true
console.log({} instanceof Object) // true
  • 类型判断
var a = [] || {}
console.log(a.constructor)
console.log(a instanceof Array)
console.log(Object.prototype.toString.call(a))
// 实际运用时先缓存 var strFn = Object.prototype.toString// Object.prototype = {//  toString:function(){//      this.toString() // this → a
//  }
// }


函数内部的this

  • 只要没有实例化构造函数,函数内部的this指向window
  • 全局范围的this指向window
  • 构造函数内this指向

arguments.callee - 正在被执行的函数对象

function test(a, b, c, d) {console.log(arguments.callee.length)
}
test() // 4
  • 应用,在自启动函数中使用递归,且不需要函数名
var res = (function (n) {if (n <= 1) {return 1}return n = n + arguments.callee(n - 1)
})(10);
console.log(res) // 55

caller - 当前函数的调用者

  • 严格模式下,使用arguments、callee、caller会报错
dad()
function dad() {child()
}
function child() {console.log('child的调用者', child.caller)
}

练习

  • typeof的返回值有几种:6种
  • 如何不用isNaN判断NaN(转换成字符串)

  • 引用值对比的是地址(这个是比较,不是隐式类型转换)


  • 函数test的AO有a

apply、call传null,this指向是什么

function Test(name) {this.name = name
}
function Test2() {Test.call(null, '测试')
}
console.log('obj', new Test2())

ES5-13 对象属性遍历、this、callee、caller相关推荐

  1. 2020.10.25 对象的创建 利用构造函数创建对象 遍历对象属性 遍历函数属性和属性数值for in 内置对象

    输出遵循变量的值就近原则 对象创建方法 : 第一种 var obj = { uname:'dengzhu',//属性的创建,多个属性创建之间用逗号隔开 sex: male; sayHi: functi ...

  2. 对象遍历php,PHP对象的遍历

    Java基础知识强化之集合框架笔记46:Set集合之TreeSet存储自定义对象并遍历练习2(自然排序:Comparable) 1. TreeSet存储自定义对象并遍历练习2: (1)Student. ...

  3. 201506230818_《JavaScript权威指南(第六版)——callee和caller、对象属性用作实参、自定义函数属性》(P175-180)...

    1. callee 正在执行的函数.使用方法:arguments.callee... caller 正在调用执行函数的函数. 2.对象属性用作实参,形如:function fn(arg) { var ...

  4. JavaScript 对象属性作实参以及实参对象的callee属性

    参考自<<JavaScript权威指南 第6版>> /* * 将对象属性用作实参, 从而不必记住参数的顺序. */ function arraycopy(from,from_s ...

  5. ES5新增对象的属性和方法

    随笔:1.某一技术为什么而生 2.解决了什么问题 3.如何使用   4.给出代码实例 ES5新增对象的方法 一.冻结对象的freeze()方法(分为深冻结和浅冻结) var obj1 ={a:'111 ...

  6. 遍历对象属性_细说JS遍历对象属性的N种方法

    本人详细介绍了JS遍历对象N种方法,欢迎关注收藏. 遍历对象属性有五种方法,下图为一个场景对比图. 可以注意到两点: 只有for ... in 才可以遍历原型链属性,且只能遍历可枚举属性. Objec ...

  7. js for in遍历对象_JS中轻松遍历对象属性的几种方式

    自身可枚举属性 Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 .如果对象的键-值都 ...

  8. java遍历一个类的属性名,java遍历对象属性

    java对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态添加属性 java 对象动态添加属性,Class对象和Java反射机制,java遍历对象属性,js对象动态 ...

  9. 遍历java对象属性_[Java教程]遍历对象属性

    [Java教程]遍历对象属性 0 2016-09-12 13:00:03 初始化对象:var person = function(name){ this._name = name;}var grand ...

最新文章

  1. css层叠样式表(一)
  2. haar 人脸检测跟踪源码整理
  3. Salesforce平台入门
  4. 丰农控股 CIO 王轶枭:万亿级农资市场,神策数据助力大丰收筑就数据驱动核心竞争力
  5. Django从理论到实战(part24)--在模板中访问静态文件
  6. iOS开发UI篇—核心动画(基础动画)
  7. jsoup解析百度音乐
  8. .Net中消除Dll中的dependency
  9. mysql mmm安装管理详解
  10. 【图文详解】入职必备——SVN使用教程
  11. 工作日志之MTK刷机
  12. 大一计算机基础教程期末考试,大一大学计算机基础教程期末考试题.doc
  13. 唐山初中计算机考试知识点,画法几何点知识点及考点.doc
  14. Python华氏摄氏度的转换
  15. 微信公众号通知和服务通知
  16. 如何让 ABAP 报表在后台作业的模式下运行
  17. 前端道路上,买书的那些事儿
  18. 关于深度图/视差图转为伪彩色的方法
  19. uniapp基础介绍
  20. 学习记录664@项目管理之项目进度管理

热门文章

  1. vue获取元素距离页面顶部的距离_VUE实时监听元素距离顶部高度的操作
  2. bootstrap jquery alert_bootstrap第七课
  3. 前端将二进制数据流转为文件_前端通过二进制流下载文件
  4. Multiple Dispatch
  5. 3 数组中的重复数字
  6. python后端将svc文件数据读入数据库具体实现
  7. Python之令人心烦意乱的字符编码与转码
  8. 列表和表格---学习笔记02
  9. FileReader/FileWriter复制文件
  10. Cache替换算法:LRU与LFU的区别