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学习笔记2 函数
Jan 11 Javascript
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
Apr 27 Javascript
ToolTips JQEURY插件之简洁小提示框效果
Nov 19 Javascript
使用jquery prev()方法找到同级的前一个元素
Jul 11 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
js+html制作简单日历的方法
Jun 27 Javascript
JS实现按钮添加背景音乐示例代码
Oct 17 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
Nov 24 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
详解Vue前端对axios的封装和使用
Apr 01 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
Apr 23 Javascript
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
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
YB217、YB235、YB400浅听
2021/03/02 无线电
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
浅析python中的分片与截断序列
2016/08/09 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python实现购物车功能的方法分析
2017/11/10 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
python实现视频分帧效果
2019/05/31 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
python中温度单位转换的实例方法
2020/12/27 Python
法律专业实习鉴定
2013/12/22 职场文书
干部鉴定材料
2014/05/18 职场文书
房屋出租委托书格式
2014/09/23 职场文书
放假通知
2015/04/14 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Elasticsearch 聚合查询和排序
2022/04/19 Python
windows系统安装配置nginx环境
2022/06/28 Servers