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 相关文章推荐
Javascript 强制类型转换函数
May 17 Javascript
jQuery Ajax提交表单查询获得数据实例代码
Sep 19 Javascript
html5+javascript制作简易画板附图
Apr 25 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
AngularJs 60分钟入门基础教程
Apr 03 Javascript
Three.js学习之几何形状
Aug 01 Javascript
JavaScript中闭包之浅析解读(必看篇)
Aug 25 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
Apr 20 Javascript
JS实现的透明度渐变动画效果示例
Apr 28 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 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 冒泡排序 交换排序法
2011/05/10 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
php头像上传预览实例代码
2017/05/02 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
静态页面的值传递(三部曲)
2006/09/25 Javascript
关于图片验证码设计的思考
2007/01/29 Javascript
javascript类继承机制的原理分析
2009/09/12 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
党支部换届选举方案
2014/05/08 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
走群众路线学习笔记
2014/11/06 职场文书
社区重阳节活动总结
2015/03/24 职场文书
初中毕业生感言
2015/07/31 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js