本文我们来学习下js函数的一些用法。

上图的要点为:

1.函数具有属性,如foo.length和foo.name。

2.arguments是类数组,arguments.length为实参的数目。

3.严格模式下,arguments为副本。

4.若未传参数,赋值给arguments[x]会无效。

5.arguments.callee===foo为true,这在严格模式下无法使用。

上图的要点为:

1.当基本类型作为this传入时,会自动转换为其对应的封装类。

2.若apply/call传入null和undefined,则调用的函数的this为默认的window。

上图的要点为:若apply/call传入null和undefined,且函数内使用了严格模式,则调用的函数的this即是null和undefined,体现出严格模式的安全性。

上图的要点为:

1.全局和函数的作用域不一样。

2.func.bind(obj)则是把obj当作this传入,这是ES5的语法,需要IE9+和现代浏览器(如Chrome和Firefox)才支持。

  

上图为用bind函数实现科里化的方法。要实现科里化(currying)需要bind函数中第一个参数为undefined或是null。

科里化可以用于模块化,给不同的模块设置不同的配置数据。

上图的要点为:若使用new新建函数对象,若函数返回值不为对象,则默认返回this。

最新文章

  1. 【.net 深呼吸】启动一个进程并实时获取状态信息
  2. bash shell
  3. linux 软件的安装与Tarball
  4. Skippr – 轻量、快速的 jQuery 幻灯片插件
  5. 使用iScroll时,input等不能输入内容的解决方法(share)
  6. mongodb备忘
  7. [异常] openCV安装和配置
  8. Hibernate-细细道来-01
  9. cocos2d-x如何优化内存的应用
  10. RubyCritic:一款不错的检测代码质量工具
  11. es6 Module
  12. selenium webdriver 使用Chrome 浏览器
  13. Socket层实现系列 — bind()的实现(二)
  14. Java SE之XML<一>XML文档规约
  15. Hystrix参数配置
  16. AsyncTask的缺陷
  17. 微软职位内部推荐-Senior Development Lead – Sharepoint
  18. python数据库访问
  19. 超酷的Android 侧滑(双向滑动菜单)效果
  20. 将DataFrame数据如何写入到Hive表中

热门文章

  1. Web Storage API:localStorage 和 SessionStorage
  2. DMVPN基础配置
  3. mysql 默认信息
  4. 学习笔记(7)- 基于LSTM的对话模型
  5. Python读取MNIST数据集
  6. 【Html 页面布局】
  7. class A<T>where T:new()是什么意思
  8. PIP安装模块下载慢或者无法下载
  9. 安装scikit-learn
  10. Android的界面组件使用之ImageButton和ImageView,ImageSwitcher和GridView