JavaScript链式调用,对象属性与遍历,this指向,callee和caller
链式调用
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相关推荐
- Lombok链式调用,子类对象set父类属性,返回父类对象
前言 lombok相信大家都用过,没用过肯定也不会点进来,一直用着都很舒服.今但是天在码代码时,碰到了一个问题,卡了半天.问题是这样的:Lombok链式调用父类中的set属性时,返回的居然是一个父类对 ...
- javascript --- 对象的方式体验链式调用
将功能相近的方法写入同一个对象中,是一个很好的编程习惯,便于后期的维护和前期的开发. foo1 var fooObj = {foo1: function() {console.log('foo1'); ...
- 设计模式之建造者模式(含链式调用)
开始之前 大家都知道建造者模式是23种设计模式之一,其属于创建型模式,我们可以先看一下菜鸟教程对建造者模式的介绍. 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂 ...
- Java8链式调用_java链式调用(转载http://www.cnblogs.com/quiet-snowy-day/p/6091233.html)
记录最近在项目设计中遇到的一个小问题. 前提:有这样两个POJO类,它们都可以通过链式调用的方式来设置其属性值,其中一个类继承了另一个类. 问题:通过链式调用,子类对象访问父类方法后,如何使返回对象仍 ...
- 二叉树的链式结构的非递归遍历
二叉树的链式结构的非递归遍历 一. 非递归前序遍历和非递归中序遍历 1. Stack.h #ifndef__STACK_H__ #define__STACK_H__ #include<st ...
- jq的链式调用.end();
jq的链式调用.end(); 先上code <!DOCTYPE html> <html lang="en"> <head><meta ch ...
- [jQuery] jQuery是如何链式调用的?
[jQuery] jQuery是如何链式调用的? 返回对象本身即可,类似 obj = { func: function(){ return obj } }, 那么 obj.func().func() ...
- java链式调用空指针_java 链式调用
前言 现在很多开源库或者代码都会使用链式调用.因为链式调用在很多时候,都可以使我们的代码更加简洁易懂.以下Student类有多数个属性,让我们看看非链式调用和链式调用有何区别. 非链式调用 Main类 ...
- 实现同步请求_图解 Promise 实现原理(二)—— Promise 链式调用
摘要 很多同学在学习 Promise 时,知其然却不知其所以然,对其中的用法理解不了.本系列文章由浅入深逐步实现 Promise,并结合流程图.实例以及动画进行演示,达到深刻理解 Promise 用法 ...
- 彻底掌握 Promise-原生Promise的实现(二) Promise的链式调用
在 彻底掌握 Promise- 原生 Promise 的实现(一) 已经初步实现了 promise 的简易版本,这距离实现完整版本的 Promise 还有一段距离,下面我们将在简易版本的基础上增加 P ...
最新文章
- 那个全网下班最早的程序员,我发现了他的秘密……
- Sublime Text 3快捷键汇总
- P3846-[TJOI2007]可爱的质数【BSGS,数论】
- [vue] 如何引入scss?引入后如何使用?
- 年度总结 | 小小的年度大总结!太精辟!
- tensorflow conv2d的padding解释以及参数解释
- 百度免费开放长语音识别功能
- 表格存储(TableStore)
- paip.2013年技术趋势以及热点 v3.0 cao
- 如何开发一个App(Android),Android开发技巧
- 单片机跑马灯c语言程序,51单片机跑马灯C语言代码!
- 诺基亚n1系统更新显示无网络_塞班系统曾经的希望,诺基亚 N8-00 发布十周年回顾...
- 【NOIP2012-Day2-T2-换教室】
- 全新在线制图网站源码在线制作横幅广告
- 关于shiro报The security manager does not implement the WebSecurityManager interface
- Anbox之arm平台lxc调试(十一)
- html5 ios keychain,iOS10适配之Keychain读写失败
- MEMS电容式加速度传感器(简介)-传感器专题
- 自动化立体仓库系统(Automated Storage and Retrieval System)
- 程序员的创世传说 第六节 棚户区的怪人