链式调用

var sched = {

wakeup: function(){

....

return this;

}

noon: function(){

....

return this;

}

night : function(){

....

return this; //是关键

}

}

链式调用:sched.wakeup().noon().night()

对象属性

obj["属性名"]

对象枚举

for in

hasOwnProperty

for in 会遍历出原型链上所有属性,hasOwnProperty可以判断是不是自身的属性

hasOwnProperty 排除原型链

A instanceof B A对象的原型里到底有没有B的原型,有就返回true

判断是否是数组的方法:

var a = [];

var str = Object.prototype.toString.call(a);

if(str === '[object Array]'){

console.log('是数组');

}else{

console.log('不是数组')

}

this

函数内部的this 运行以后指向window,若是实例化则指向实例化对象

call和apply的this

全局this->window

预编译函数this ->window

apply/call改变this指向

构造函数的this指向实例化对象

实例化的过程中 会var this = {__proto__:Test.prototype}

callee/caller

ex1:

function test(a, b, c){

console.log(arguments.callee.length); //3

console.log(test.length); //3

console.log(arguments.length); //2

}

test(1,2);

ex2:

var sum = (function(n){

if(n <= 1){

return 1;

}

return n + arguments.callee(n - 1);

})(100);

console.log(sum)

ex3:

caller

test1();

function test1(){

test2();

}

function test2(){

console.log(test2.caller); //返回当前被调用函数的函数引用

}

如果'use strict',caller、callee和arguments都不能通过

转载于:https://juejin.im/post/5b793820e51d4538ce434558

JavaScript链式调用,对象属性与遍历,this指向,callee和caller相关推荐

  1. Lombok链式调用,子类对象set父类属性,返回父类对象

    前言 lombok相信大家都用过,没用过肯定也不会点进来,一直用着都很舒服.今但是天在码代码时,碰到了一个问题,卡了半天.问题是这样的:Lombok链式调用父类中的set属性时,返回的居然是一个父类对 ...

  2. javascript --- 对象的方式体验链式调用

    将功能相近的方法写入同一个对象中,是一个很好的编程习惯,便于后期的维护和前期的开发. foo1 var fooObj = {foo1: function() {console.log('foo1'); ...

  3. 设计模式之建造者模式(含链式调用)

    开始之前 大家都知道建造者模式是23种设计模式之一,其属于创建型模式,我们可以先看一下菜鸟教程对建造者模式的介绍. 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂 ...

  4. Java8链式调用_java链式调用(转载http://www.cnblogs.com/quiet-snowy-day/p/6091233.html)

    记录最近在项目设计中遇到的一个小问题. 前提:有这样两个POJO类,它们都可以通过链式调用的方式来设置其属性值,其中一个类继承了另一个类. 问题:通过链式调用,子类对象访问父类方法后,如何使返回对象仍 ...

  5. 二叉树的链式结构的非递归遍历

    二叉树的链式结构的非递归遍历 一. 非递归前序遍历和非递归中序遍历 1.    Stack.h #ifndef__STACK_H__ #define__STACK_H__ #include<st ...

  6. jq的链式调用.end();

    jq的链式调用.end(); 先上code <!DOCTYPE html> <html lang="en"> <head><meta ch ...

  7. [jQuery] jQuery是如何链式调用的?

    [jQuery] jQuery是如何链式调用的? 返回对象本身即可,类似 obj = { func: function(){ return obj } }, 那么 obj.func().func() ...

  8. java链式调用空指针_java 链式调用

    前言 现在很多开源库或者代码都会使用链式调用.因为链式调用在很多时候,都可以使我们的代码更加简洁易懂.以下Student类有多数个属性,让我们看看非链式调用和链式调用有何区别. 非链式调用 Main类 ...

  9. 实现同步请求_图解 Promise 实现原理(二)—— Promise 链式调用

    摘要 很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了.本系列文章由浅入深逐步实现 Promise,并结合流程图.实例以及动画进行演示,达到深刻理解 Promise 用法 ...

  10. 彻底掌握 Promise-原生Promise的实现(二) Promise的链式调用

    在 彻底掌握 Promise- 原生 Promise 的实现(一) 已经初步实现了 promise 的简易版本,这距离实现完整版本的 Promise 还有一段距离,下面我们将在简易版本的基础上增加 P ...

最新文章

  1. 那个全网下班最早的程序员,我发现了他的秘密……
  2. Sublime Text 3快捷键汇总
  3. P3846-[TJOI2007]可爱的质数【BSGS,数论】
  4. [vue] 如何引入scss?引入后如何使用?
  5. 年度总结 | 小小的年度大总结!太精辟!
  6. tensorflow conv2d的padding解释以及参数解释
  7. 百度免费开放长语音识别功能
  8. 表格存储(TableStore)
  9. paip.2013年技术趋势以及热点 v3.0 cao
  10. 如何开发一个App(Android),Android开发技巧
  11. 单片机跑马灯c语言程序,51单片机跑马灯C语言代码!
  12. 诺基亚n1系统更新显示无网络_塞班系统曾经的希望,诺基亚 N8-00 发布十周年回顾...
  13. 【NOIP2012-Day2-T2-换教室】
  14. 全新在线制图网站源码在线制作横幅广告
  15. 关于shiro报The security manager does not implement the WebSecurityManager interface
  16. Anbox之arm平台lxc调试(十一)
  17. html5 ios keychain,iOS10适配之Keychain读写失败
  18. MEMS电容式加速度传感器(简介)-传感器专题
  19. 自动化立体仓库系统(Automated Storage and Retrieval System)
  20. 程序员的创世传说 第六节 棚户区的怪人

热门文章

  1. (python3) 字符串压缩与解压
  2. onload与ready差异
  3. SQL处理非常见空串
  4. 【转】Python基础-字符串
  5. windows快捷键大全(转载)
  6. ASP.NET 3.5核心编程学习笔记(44):HTTP处理程序的编写之从数据库加载图像
  7. 设置元素的高度为百分比,结果不起作用的解决方法
  8. mysql关键字了解
  9. mac上安装搭建Appium环境
  10. .Net面试葵花宝典