当前位置:首页 > 日记 > 正文

JavaScript 函数的定义-调用、注意事项

JavaScript 函数的定义-调用、注意事项

函数定义

函数语句定义

function(a,b){ return a+b; }

表达式定义

var add = function(a,b){return a+b};

//函数表达式可以包含名称,这在递归时很有用 var f = function fact(x){ if(x<=1) {return 1; }else { return x*faxt(x-1); } }

以表达式方式定义的函数,函数的名称是可选的。如果函数定义表达式包含名称,函数的局部作用域将会包含一个绑定到函数对象的名称,实际上,函数的名称将成为函数内部的一个局部变量

函数命名规范

1.like_this()第一个字符为小写,当包含多个单词时候,单词以下划线分割

2.likeThis()第一个字符为小写,当包含多个单词时候,除第一个单词以外的单词首字母使用大学字母

3.内部函数或私有函数,通常以一条下划线为前缀

注:函数声明语句‘被提前到外部脚本或外部函数作用于顶部,所以可以被在它定义之前出现的代码所调用

以表达式方式定义函数前必须把它赋值给一个变量。所以表达式方式定义的函数在定义之前是无法调用的

函数返回值

  • return语句返回函数的值给调用者。
  • return语句没有,则它返回undefined

 嵌套函数

  • 嵌套函数可以访问他们的函数的参数和变量
  • 但是嵌套函数不能出现在循环、条件判断,或者try/cache/finally/with语句中

函数调用

  • 作为函数
  • 作为方法
  • 作为构造函数
  • 通过他们的call()和apply()方法间接调用

作为函数调用

add(1,2)

 根据ECMAScript3和非严格的ECMAScript5对函数调用的规定,调用上下文(this的值)是全局对象。然而在严格模式下,调用上下文则是undefined。//定义一个函数且调用一个函数来确定当前脚本运行是否为严格模式
 var strict = (function(){return this;}());

作为方法调用

var o = { m:1, n:2, add:function(){  this.result = this.m+this.n;  }}

方法调用和函数调用的一个重大区别。----调用上下文

o.add() add的调用上下文为o,即:this
o.add() 等同于o['add']()
方法链:当方法并不需要返回值时候,最好直接返回this
this为一个关键字,不是变量,也不是属性名。JavaScript语法不允许给this赋值
和变量不同,关键字this没有作用于的限制,嵌套的函数不会从调用它的函数中继承this,如果想访问外部函数的this,var self= this;保存在变量中
如果嵌套函数作为函数调用,其this的值指向调用它的对象。如果作为函数调用,this不是全局对象(非严格模式),就是undefined(严格模式)

构造函数调用

var o = new Object();

构造函数调用和普通函数调用以及方法调用在实参处理。调用上下文和返回值等方面都有不同。

凡是没有形参的构造函数调用都可以省略圆括号。

var o = new Object();var o = new Object;//等价

构造函数调用创建一个新的空对象,这个对象继承自构造函数的prototype属性,这个函数试图初始化这个新创建的对象,病将这个对象做为上下文,因此构造函数可以使用this关键字来引用这个新创建的对象。

new o.m() 调用的上下文并不是o.
构造函数并不使用return。如果构造函数显示的使用return语句返回一个对象,那么调用表达式的值就是这个对象。如果构造函数但并没有返回值,或者返回一个原始值,那么就会忽略返回值,同时使用新对象作为返回结果。

间接调用

call()
appy()

相关文章

excel 公式数值化的图文教程详解

excel 公式数值化的图文教程详解

图文教程,方法,数值,公式,详解,  Excel中怎么把公式给数值化呢?excel表格中遇到大量数据要整理的时候,很多人会选择运用公式来处理,这时候我们就要将公式数值化,本文介绍了excel 公式数值化的方法,希望阅读过后对你有所启发!excel 公式数值化…

浅谈Javascript事件对象

浅谈Javascript事件对象

事件对象,浅谈,电脑软件,Javascript,如果是事件处理函数绑定的函数,浏览器会默认传递一个参数,而这个参数就是事件对象。document.onclick = function() { alert(arguments.length); //1}因为arguments[0]这样使用这个参数比较麻烦,所以我们可…

微信小程序微信支付接入开发实例详

微信小程序微信支付接入开发实例详

微信支付,详解,实例,程序,电脑软件,本文主要讲述微信小程序接入微信支付开发过程中遇到的坑,分为两大块,小程序端和后台接口封装。本文主要内容如下:一、后台接口封装;二、小程序端整合;三、总结一、后台接口封装本文介绍基于ThinkPHP5进行接口…

Excel中表格进行设置分页预览的操

Excel中表格进行设置分页预览的操

设置,分页,操作技巧,表格,操作步骤,  Excel中如何进行分页预览,跟着一步步操作吧。今天,小编就教大家在Excel中表格进行设置分页预览的操作技巧。希望对你有帮助!Excel中表格进行设置分页预览的操作步骤如何设置成分页预览分页预览方式一:打…

怎么查看好友是否换QQ号?

怎么查看好友是否换QQ号?

好友,电脑软件,QQ,  今天小编打开QQ,发现有好多没见过的QQ好友灰色的躺在列表里,跟他们聊天他们也不回复,为了不让它影响我以后加好友,我只能删除它了,下面小编分享怎么查看好友是否换QQ号?的方法,欢迎大家前来阅读怎么查看好友是否换QQ号?  …

excel中函数对多条件区间判断取值

excel中函数对多条件区间判断取值

区间,取值,函数,方法,标识,  在工作表中,要求按照D2:E6单元格区域中的成绩与等级的对应关系,返回A列分数所属的成绩等级。今天,小编就教大家如何在多条件区间判断取值的方法。Excel中函数对多条件区间判断取值的方法Excel中函数对多条件区间…

wps文字技巧怎么放大缩小工作表格

wps文字技巧怎么放大缩小工作表格

放大缩小,文字,方法,表格,工作,  放大和缩小excel表主要是方便我们预览,其实放大和缩小excel表有好几种方法,那么具体要怎么做呢?接下来下面小编告诉你wps放大缩小工作表格的方法,欢迎大家来到学习。wps放大缩小工作表格的方法wps放大缩小工…

word打开文件转换怎么样控制文件还

word打开文件转换怎么样控制文件还

控制文件,样式,文件转换,库中,电脑软件,  用户需要启用&ldquo;打开时确认文件格式转换&rdquo;功能,以在打开并恢复文件时出现文件格式转换对话框,从而更灵活地控制文件格式转换过程。以下是小编为您带来的关于word打开文件转换控制文件还原…

excel2003行列转置的教程

excel2003行列转置的教程

教程,转置,行列,电脑软件,  Excel中的行列转置该如何操作呢?下面是小编带来的关于excel2003行列转置的教程,希望阅读过后对你有所启发!excel2003行列转置的教程:  行列转置步骤1:首先打开自己制作的excel电子表格!行列转置步骤2:选择我们要…

javascript中replace使用方法总结

javascript中replace使用方法总结

使用方法,电脑软件,javascript,replace,ECMAScript提供了replace()方法。这个方法接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串,第二个参数可以是一个字符串或者一个函数。现在我们来详细讲解可能出现的几种情况。1. 两个参数…

每次打开excel2007都需要配置怎么

每次打开excel2007都需要配置怎么

配置,处理方法,怎么处理,电脑软件,  打开office2007被提示需要安装配置,然而配置安装完毕,第二次打开office2007还是会提示。这到底是怎么回事呢。下面给大家分享excel2007打开时配置的处理方法,欢迎大家来到学习。excel2007打开时配置的处…

手机QQ空间特别关心怎么取消啊

手机QQ空间特别关心怎么取消啊

取消,空间,电脑软件,QQ,  手机QQ空间特别关心怎么取消?下面小编就给大家分享下手机QQ空间取消特别关心的方法,希望可以帮助到大家,欢迎大家前来阅读!手机QQ空间特别关心怎么取消啊  1.点击底栏【我的空间】2.选择右上角的【好友】3.选择…