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 相关文章推荐
用YUI做了个标签浏览效果
Feb 20 Javascript
两个数组去重的JS代码
Dec 04 Javascript
jQuery实现的动态伸缩导航菜单实例
May 07 Javascript
Javascript中With语句用法实例
May 14 Javascript
Vue.js tab实现选项卡切换
May 16 Javascript
js计算两个日期间的天数月的实例代码
Sep 20 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
Mar 04 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 Javascript
深入了解响应式React Native Echarts组件
May 29 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
Nov 20 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 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
php 获取select下拉列表框的值
2010/05/08 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
requireJS使用指南
2016/04/27 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
教大家使用Python SqlAlchemy
2016/02/12 Python
Python程序中用csv模块来操作csv文件的基本使用教程
2016/03/03 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
Python 多进程、多线程效率对比
2020/11/19 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
绩效专员岗位职责
2013/12/02 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
党建工作经验交流材料
2014/05/25 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
法学专业求职信范文
2015/03/19 职场文书
离婚纠纷代理词
2015/05/23 职场文书
Python访问Redis的详细操作
2021/06/26 Python
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸