在每篇关于模块模式的文章中,我都会看到以下列方式定义模块:
Private Function qdefSQL() As Boolean
Dim db As Database
Dim qdef As QueryDef
Dim sSQL As String
Dim iqdef As Integer
Set db = CurrentDb
For iqdef = 0 To db.QueryDefs.count - 1
Set qdef = db.QueryDefs(iqdef)
sSQL = qdef.SQL
If InStr(sSQL, "target") > 0 Then
Debug.Print qdef.Name
End If
Next
qdefSQL = True
End Function
这与:和
有什么区别var foobar = (function() {
// code
})();
?两者似乎都以同样的方式运作。
答案 0 :(得分:3)
在第一种情况下,foobar
返回匿名函数调用的结果,而在第二种情况下,foobar
IS 返回匿名函数。
这一切都意味着它们根本不是同一个东西,并且不会以同样的方式工作。
答案 1 :(得分:3)
他们似乎不应该以同样的方式工作。
一个定义一个函数并调用它,一个定义一个函数。
在第一种情况下,foobar
被设置为函数返回的任何内容。
在第二个中,foobar
是函数。