ASP中Sub和Function的区别说明


Posted in Javascript onAugust 30, 2020

SUB和FUNCTION有什么不同呢,他们的语法应该怎么构成?

Sub:过程;
Function:函数,可以带返回值
语法:

Sub SubName(参数1, 参数2,...)
....
End Sub

Function FunctionName(参数1, 参数2,...)
...
FunctionName = 返回值
End Function

调用方法:

Sub直接用 SubName 参数1, 参数2,...
Function如果不要返回值,用 FunctionName 参数1, 参数2,...
如果要返回值,则 Result = FunctionName(参数1, 参数2,...)
语法是这样,这是对的

Sub SubName(参数1, 参数2,...)
....
End Sub
Function FunctionName(参数1, 参数2,...)
...
FunctionName = 返回值
End Function

调用时:

sub 只能用:
SubName 参数1, 参数2,...
函数则:
变量=FunctionName (参数1, 参数2,...)
FunctionName 参数1, 参数2,...

上面均未讲出根本:

SUB与FUNCTION均可有返回值。所以首先要讲清返回方式:有两种,过程或函数返回,即分配与过程或函数同名的返回变量地址。function分配,但sub不分配。VB用此方式加以区分,VC则用VOID声明不用分配。即如p=aa()若aa()是sub则什么也得不到,还会报错。但函数则会得到数值。其次,参数返回,VB中缺省用地址传参,即能返回。但声明为BYVAL即值传参,则不可返回,所以,不存在灵活性的差别。比如函数function bb(a,b), 调用时可以bb m, n也可以p=bb(m,n). 实际,如果确认不会失败,才能用SUB,否则,必须要用FUNCTION以确认是否成功或取得返回值。所以编程,应少用SUB,少用 SubName 参数1, 参数2,...的调用方式。

sub是过程不需要返回值;function是函数,需要返回值,如下:

Function NameOfFunction(parameter1, parameter2) 
'some code 
NameOfFunction = return value 
End Function 

Sub NameOfSubRoutine(parameter1, parameter2) 
'some code... 
End Sub

除了function有返回一个值的区别外,在ASP中好像没有多大的区别,把sub写成FUNCTION好像效果一样。

sub无返回值

调用sub 可call sub
调用function 可 <%=function%>

通常可以用function代替一切,除了一些一定要用sub的——例如事件的触发要是(private sub xxx_OnYYY)。用function的好处是又返回值,对于你认为用sub就行的,用function的返回值就是用来告诉你程序是否有出错的。一般来说返回0表示成功,其他数值就是错误代。

vbscript中Function与Sub的区别

一、Function与Sub概述:

Sub(子过程): sub是Subroutines的缩写,它的意思是子程序,它是将一段具有某种特定功能的语句区块单独编写成一个独立的程序,给予特定名称 。

Function(函数):表示每个输入值对应唯一输出值的一种对应关系 ,具备 Sub 的功能。

二、Function与Sub异同

相同点:
1)Sub和Function都是 vbscript 的过程,
2)可以传递参数,
3)是业务操作或业务处理的封装,都可以被重复调用。

不同点:
1)Sub无返回值,而Function可以有返回值。
2)调用Sub 和 Function也不同

三、举例[引用之前网上看的一个例子]:

大家应该都知道的谈恋爱的过程。有些人只想知道他谈恋爱的过程(Call Sub)。有些人既想知道过程,又要知道最终结果有没有结婚(Call Function)

假设:谈恋爱这个过程,由给MM打电话、陪MM逛街、给MM送礼物等等动作组成。

那么,Sub 谈恋爱()和Function 谈恋爱()有什么不同呢?

1)Sub 谈恋爱
Sub 谈恋爱()
给MM打电话
陪MM逛街
给MM送礼物
End Sub

调用方法:因为Sub没有返回值,只要在代码中: Call 谈恋爱()

2)Function谈恋爱
Function 谈恋爱()
给MM打电话
陪MM逛街
给MM送礼物
If (mm愿意和他结婚) Then
谈恋爱 = 成功
Else
谈恋爱 = 失败
End If
End Function

调用方法:因为Function有返回值,所以可以把函数返回值赋给变量,只要在代码中:result = 谈恋爱()

Javascript 相关文章推荐
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Apr 12 Javascript
jquery 操作DOM的基本用法分享
Apr 05 Javascript
解析jquery获取父窗口的元素
Jun 26 Javascript
非html5实现js版弹球游戏示例代码
Sep 22 Javascript
HTTP 304错误的详细讲解
Nov 13 Javascript
jQuery获取和设置表单元素的方法
Feb 14 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
Mar 30 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
May 09 Javascript
ElementUI Tag组件实现多标签生成的方法示例
Jul 08 Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 Javascript
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
TBCompressor js代码压缩
Jan 05 #Javascript
关于Mozilla浏览器不支持innerText的解决办法
Jan 01 #Javascript
Js event事件在IE、FF兼容性问题
Jan 01 #Javascript
javaScript同意等待代码实现心得
Jan 01 #Javascript
javascript判断用户浏览器插件安装情况的代码
Jan 01 #Javascript
javascript 事件绑定问题
Jan 01 #Javascript
javascript跨域刷新实现代码
Jan 01 #Javascript
You might like
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
js null,undefined,字符串小结
2010/08/21 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
js数组的基本使用总结
2021/01/18 Javascript
python中的列表推导浅析
2014/04/26 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Python使用minidom读写xml的方法
2015/06/03 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
python内置模块collections知识点总结
2019/12/19 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
用python发送微信消息
2020/12/21 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
计算机专业应届生求职信
2014/04/06 职场文书
买卖合同协议书范本
2014/10/18 职场文书
首都博物馆观后感
2015/06/05 职场文书
小平您好观后感
2015/06/09 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书