博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript笔记——函数
阅读量:5376 次
发布时间:2019-06-15

本文共 1059 字,大约阅读时间需要 3 分钟。

函数

  • 函数声明、函数表达式、命名函数表达式

    函数声明:具有函数声明提升,不仅仅是声明提升,函数定义也提升了。function fn(){}

    函数表达式:没有提升,所以可以在判断语句等块级作用域中使用两个或两个以上的函数表达式。var fn = function(){}
    命名函数表达式:函数名和变量名相同。var fn = function fn(){}

  • 立即调用的函数表达式

    立即调用的函数表达式的方法有好多种,最常用的是

    (function fn(){})()

    然而还可以这样写:

    ( function() {}() );   ( function() {} )();  [ function() {}() ];  ~ function() {}();  ! function() {}();  + function() {}();  delete function() {}();  typeof function() {}();  void function() {}();  new function() {}();  var f = function() {}();

    通过在匿名函数附近使用括号或者一元运算符来引导解析器,指明运算符附近是函数表达式,从而实现立即调用的函数表达式

  • 递归

通过arguments.callee来调用函数实现递归。

  • 函数回调作用域

    var myApp = {};  myApp.color = "green";  myApp.paint = function(node){      node.style.color = this.color  }  var findNodes = function(callback){      //....      if(typeof callback === "function"){          callback(found)      }      //....  }  findNodes(myApp.paint)

    回调函数中的this并不是指向myApp,而是指向全局对象,因为findNodes是全局函数

    可以通过修改findNodes函数,findNodes(myApp.paint,myApp),再修改函数的内部。一般方法可以传字符串来避免输入两次对象名。比如findNodes("paint",myApp)。

转载于:https://www.cnblogs.com/fehammer/p/5751477.html

你可能感兴趣的文章
Go 文件操作
查看>>
webpack 使用配置文件
查看>>
iOS热更新技术被苹果官方警告?涉及到RN、Weex、JSPatch
查看>>
正则表达式
查看>>
mysql全家桶(二)数据操作
查看>>
auto(c++11)
查看>>
Andrew Ng机器学习week5(Neural Networks: Learning)编程习题
查看>>
Linux基本命令之逻辑测试二
查看>>
k8s资源pod yaml文件分析
查看>>
Django-debug-toolbar
查看>>
Hadoop的三种安装模式之伪分布模式
查看>>
jquery设置元素的readonly和disabled
查看>>
(转)技术人员如何建立个人品牌
查看>>
HTML标签--<font><b><big><small><em><i><sup><sub><strong>
查看>>
转录组组装软件stringtie
查看>>
application对象
查看>>
sqlserver2008 中使用MSXML2.ServerXMLHttp拼装soap调用webservice
查看>>
20170926日关于需求调研的一些理解,
查看>>
[HNOI2008]玩具装箱TOY
查看>>
ejabberd组成模块
查看>>