JavaScript 函数的定义-调用、注意事项
来源:互联网 发布:纸质书情怀 知乎 编辑:程序博客网 时间:2024/06/05 09:44
函数定义
函数语句定义
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。
1 //定义一个函数且调用一个函数来确定当前脚本运行是否为严格模式2 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
- JavaScript 函数的定义-调用、注意事项
- 【小结】JavaScript函数定义的一些注意事项
- JavaScript:函数的定义和调用
- 关于JavaScript的函数定义及调用
- JavaScript—函数的定义和调用
- javascript笔记:函数的定义与调用
- Python【函数:调用函数 定义函数 函数的参数 递归函数】学习注意事项
- Javascript - 定义函数直接调用
- javascript函数定义和调用
- JavaScript 函数定义与调用
- JavaScript 函数(一)- 函数的定义及调用
- PHP调用javascript的注意事项
- JavaScript函数定义的三种方式及其调用
- JavaScript学习笔记6-函数的定义和调用
- javascript函数的定义与调用以及参数传递
- Javascript读书笔记:函数定义和函数调用
- javascript的函数定义
- javascript函数的定义
- 【转2】修改pppd提高多拨成功率
- MySql简单建表语句
- 通过扩展让ASP.NET Web API支持JSONP ----- .NET 4.0 asp.net WebApi(不是WebApi 2)
- R<给*apply函数族中的FUN传递多个参数>
- Tensorflow 入门
- JavaScript 函数的定义-调用、注意事项
- Map集合的四种遍历方式
- LeetCode-6. ZigZag Conversion (JAVA)(之字形转换)
- activiti监听类加载不了spring
- 浅析 JNDI / DataSource / ConnectionPool 三者
- jQuery学习笔记-----------(显示、淡入淡出、滑动、动画、callback、链接)
- 仿arrow.io之地图
- 小米手机 开启应用调试功能,红米 无法开启logcat打印功能
- 贝塞尔曲线初探