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 相关文章推荐
ExtJS 2.0实用简明教程 之ExtJS版的Hello
Apr 29 Javascript
自制基于jQuery的智能提示插件一枚
Feb 18 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
Jan 11 Javascript
多个datatable共存造成多个表格的checkbox都被选中
Jul 11 Javascript
js编写一个简单的产品放大效果代码
Jun 27 Javascript
详解angular中如何监控dom渲染完毕
Jan 03 Javascript
ES6中新增的Object.assign()方法详解
Sep 22 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
vue获取form表单的值示例
Oct 29 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
Aug 10 Javascript
vue页面引入three.js实现3d动画场景操作
Aug 10 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
Dec 16 Javascript
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
如何去掉文章里的 html 语法
2006/10/09 PHP
浅析PHP水印技术
2007/02/14 PHP
php生成随机数或者字符串的代码
2008/09/05 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
带密匙的php加密解密示例分享
2014/01/29 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
Vue中实现权限控制的方法示例
2019/06/07 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
4s客服专员岗位职责
2013/12/01 职场文书
打架检讨书300字
2014/02/02 职场文书
公司业务员岗位职责
2014/03/18 职场文书
高中生家长寄语大全
2014/04/03 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
学籍证明模板
2015/06/18 职场文书
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python