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 相关文章推荐
索趣科技的答案
Feb 07 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 Javascript
基于JQuery制作可编辑的表格特效
Dec 23 Javascript
jQuery中:checkbox选择器用法实例
Jan 03 Javascript
JS命令模式例子之菜单程序
Oct 10 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
详解Vue用axios发送post请求自动set cookie
May 10 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
Sep 29 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
vue组件系列之TagsInput详解
May 14 Javascript
react的hooks的用法详解
Oct 12 Javascript
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
快速开发一个PHP扩展图文教程
2008/12/12 PHP
php批量上传的实现代码
2013/06/09 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
php中getservbyport与getservbyname函数用法实例
2014/11/18 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
JavaScript Eval 函数使用
2010/03/23 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
关于vue面试题汇总
2018/03/20 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
Python编程之属性和方法实例详解
2015/05/19 Python
使用python实现tcp自动重连
2017/07/02 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
python 如何调用 dubbo 接口
2020/09/24 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
法律工作求职自荐信
2013/10/31 职场文书
三查三看党性分析材料
2014/02/18 职场文书
英语老师推荐信
2014/02/26 职场文书
完整版商业计划书
2014/09/15 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
防震减灾主题班会
2015/08/14 职场文书
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android