JavaScript 定义function的三种方式小结


Posted in Javascript onOctober 16, 2009

(1)声明一个表达式变量,并定义该变量的表达式。如:

var func = function() 
{ 
/*body code*/ 
}

(2) 定义一个function表达式,并指定该表达式的标识。如:
function func() 
{ 
//body code 
}

(3) 使用JavaScript内置Function对象构造。如:
var func = new Function("/*parameters*/","/*body code*/");

声明变量定义与使用function表达式标识定义是有区别的。我们知道,function在发生传递时采用的是引用传递类型,使用变量定义是保存了表达式的地址引用,而使用标志定义保存了表达式的地址。因此当我们改变或重新定义变量时,并不会导致原来的表达式改变;而当改变标识时,其对应的表达式也随之改变。如:
//声明一个变量,并定义该变量的表达式引用 
var test = function() 
{ 
alert("reference test"); 
} 
//定义一个表达式,保存其地址信息于test1中 
function test1() 
{ 
alert("reference test1"); 
} 
//将test所引用的表达式传递给reference 
var reference = test; 
//将test1表达式的地址传递给reference1 
var reference1 = test1; 
//改变变量test的引用 
test = function() 
{ 
alert("new test"); 
} 
//重新定义test1地址内的数据 
function test1() 
{ 
alert("new test1"); 
} 
alert(reference);//其所引用的表达式不改变 
alert(reference1);//由于reference1是test1地址的引用,当test1地址表示的内容改变时,reference1的内容也随之改变
Javascript 相关文章推荐
JavaScript Prototype对象
Jan 07 Javascript
JavaScript QueryString解析类代码
Jan 17 Javascript
js实现省市联动效果的简单实例
Feb 10 Javascript
一个js过滤空格的小函数
Oct 10 Javascript
jquery实现勾选复选框触发事件给input赋值
Feb 01 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
Feb 23 Javascript
JS集成fckeditor及判断内容是否为空的方法
May 27 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 Javascript
uploadify插件实现多个图片上传并预览
Sep 30 Javascript
Angular8 实现table表格表头固定效果
Jan 03 Javascript
开发一个封装iframe的vue组件
Mar 29 Vue.js
JavaScript 函数式编程的原理
Oct 16 #Javascript
实现JavaScript中继承的三种方式
Oct 16 #Javascript
显示js对象所有属性和方法的函数
Oct 16 #Javascript
半角全角相互转换的js函数
Oct 16 #Javascript
JavaScript 三种创建对象的方法
Oct 16 #Javascript
JQuery困惑—包装集 DOM节点
Oct 16 #Javascript
JavaScript 对象成员的可见性说明
Oct 16 #Javascript
You might like
通俗易懂的php防注入代码
2010/04/07 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
js 可拖动列表实现代码
2011/12/13 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
javascript中this指向详解
2016/04/23 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
jQuery事件委托代码实践详解
2019/06/21 jQuery
Python科学计算环境推荐——Anaconda
2014/06/30 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Python中return函数返回值实例用法
2020/11/19 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
综合实践活动总结
2014/05/05 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python