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 对象定义方法 简单易学
Mar 22 Javascript
JavaScript 开发工具webstrom使用指南
Dec 09 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
Nov 17 Javascript
使用JSON作为函数的参数的优缺点
Oct 27 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
Node.js自定义实现文件路由功能
Sep 22 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
Nov 18 Javascript
Vue性能优化的方法
Jul 30 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 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
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
深入PHP变量存储的详解
2013/06/13 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
详解K-means算法在Python中的实现
2017/12/05 Python
Python实现感知机(PLA)算法
2017/12/20 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Django web框架使用url path name详解
2019/04/29 Python
夜大毕业生自我评价分享
2013/11/10 职场文书
调解员先进事迹材料
2014/02/07 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
护士岗位竞聘书
2015/09/15 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python