博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【javascript笔记】声明函数的三种方式
阅读量:4972 次
发布时间:2019-06-12

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

最近 在看js书籍,记录了一下:

通常我们使用的是 使用函数声明语法定义:

function functionName(arg1,arg2){       //to-do }
但是我们偶尔也会这样  用函数表达式 定义函数:
var sum =function(arg1,arg2){         //to-do}

两种方式有什么区别呢,其实区别不是很大  ,实际上js里面 函数也是对象。

下面引用一个例子:

function sum(arg1,arg2){              return arg1+arg2;}alert(sum(10,10));//输出20var anotherSum=sum;//实际上传递的只是一个引用alert( anotherSum(10,10));//输出20sum=null;alert(anotherSum(10,10));// 仍然输出的20 由于sum现在指向的是一个空引用  但是 新的变量anotherSum指向了 function对象

还有一种不推荐的定义函数的方式, var sum =new Function('arg1','arg2','return arg1+arg2') ;  这种语法会导致解析两次 代码,请自行忽略

函数声明和 表达式 的明显区别 是解析器在执行环境加载数据的时候会先读取函数声明 也就是 function sum(arg1,arg2) 这种声方式,并且让其在执行任何代码之前可以使用(可以执行);

//下面的代码不会报错alert(sum(10,10));function sum(arg1,arg2){return arg1+arg2;}//但是改为这样alert(sum(10,10));var sum=function (arg1,arg2){return arg1+arg2;}//会再第一句出报错

//函数声明 和表达式 这样混用是可以的 但是 请注意 safari中 这样是会报错

var sum=function sum(arg1,arg2){

  return arg1+arg2;

}

若我们想访问函数的指针 而不是去 执行函数 就不加上括号(当然包括里面的参数):

http://www.cnblogs.com/haogj/p/3293592.html 

转载于:https://www.cnblogs.com/dongguapifly/p/10627187.html

你可能感兴趣的文章
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
scanf和gets
查看>>
highcharts 图表实例
查看>>
ubuntu下如何查看用户登录及系统授权相关信息
查看>>
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>