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 相关文章推荐
jQuery 对象中的类数组操作
Apr 27 Javascript
20款效果非常棒的 jQuery 插件小结分享
Nov 18 Javascript
JS实现跟随鼠标立体翻转图片的方法
May 04 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
Nov 11 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
Jan 04 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
Jan 19 Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 Javascript
redux处理异步action解决方案
Mar 22 Javascript
微信小程序吸底区域适配iPhoneX的实现
Apr 09 Javascript
vue 限制input只能输入正数的操作
Aug 05 Javascript
vue单元格多列合并的实现
Nov 26 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
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
js常用函数 不错
2006/09/08 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
js数组的操作指南
2014/12/28 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
创先争优承诺书范文
2014/03/31 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
Golang中channel的原理解读(推荐)
2021/10/16 Golang
利用js实现简单开关灯代码
2021/11/23 Javascript
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript