Re: Two Questions.
Anders Nawroth <[email protected]> Thu, 03 Dec 2009 19:07:43 +0100
| Newsgroups | gmane.comp.web.dom.wdf |
|---|---|
| Message-ID | <[email protected]> |
--ltJ7xklJl54VCDjNep9Rr0DsEXvXhPajAsv9LMv
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Hi!
> 1. what is the difference between
> function f() {
>
> }
> and
> var f = function() {
>
> }
>
The biggest practical difference I've stumbled upon is that in the first
case you can call the function before the declaration, in the second
case you can't. Another difference is that if you want to remove the
whitespace when deploying the script, the second case needs an ";" after
it, whereas the function declaration (first case) should not have it.
A detailed description which also takes new Function(...) into account
(but hey, don't use that variation if it's not *really* necessary!):
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference:Functions#Function_constructor_vs._function_declaration_vs._function_expression
One more variation is
var f = function g(){};
This is actually useful when you have nested namespaces like this:
xyz.a.b.c.d.e.f = function g(){};
In this case you can call the function locally by using g().
Here's a Stack Overflow thread on the topic:
http://stackoverflow.com/questions/336859/
And this article goes really in-depth with JavaScript functions:
http://yura.thinkweb2.com/named-function-expressions/
/anders
--ltJ7xklJl54VCDjNep9Rr0DsEXvXhPajAsv9LMv
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body style="background-color: #fff;">
<span style="display:none"> </span>
<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->
<div id="ygrp-text" >
<p>Hi!<br>
<br>
> 1. what is the difference between<br>
> function f() {<br>
><br>
> } <br>
> and<br>
> var f = function() {<br>
><br>
> }<br>
> <br>
<br>
The biggest practical difference I've stumbled upon is that in the first <br>
case you can call the function before the declaration, in the second <br>
case you can't. Another difference is that if you want to remove the <br>
whitespace when deploying the script, the second case needs an ";" after <br>
it, whereas the function declaration (first case) should not have it.<br>
<br>
A detailed description which also takes new Function(...<wbr>) into account <br>
(but hey, don't use that variation if it's not *really* necessary!):<br>
<a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference:Functions#Function_constructor_vs._function_declaration_vs._function_expression">https://developer.<wbr>mozilla.org/<wbr>en/Core_JavaScri<wbr>pt_1.5_Reference<wbr>:Functions#<wbr>Function_<wbr>constructor_<wbr>vs._function_<wbr>declaration_<wbr>vs._function_<wbr>expression</a><br>
<br>
One more variation is<br>
var f = function g(){};<br>
This is actually useful when you have nested namespaces like this:<br>
xyz.a.b.c.d.<wbr>e.f = function g(){};<br>
In this case you can call the function locally by using g().<br>
<br>
Here's a Stack Overflow thread on the topic:<br>
<a href="http://stackoverflow.com/questions/336859/">http://stackoverflo<wbr>w.com/questions/<wbr>336859/</a><br>
<br>
And this article goes really in-depth with JavaScript functions:<br>
<a href="http://yura.thinkweb2.com/named-function-expressions/">http://yura.<wbr>thinkweb2.<wbr>com/named-<wbr>function-<wbr>expressions/</a><br>
<br>
/anders<br>
<br>
</p>
</div>
<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>
<div id="ygrp-actbar" style="clear: both; margin-bottom: 10px; white-space: nowrap; color: #666; padding-top: 15px;">
<div>
<a href="mailto:[email protected]?subject=Re: [wdf-dom] Two Questions.">
Reply to <span style="font-weight: 700;">sender</span></a>
| <a href="mailto:[email protected]?subject=Re: [wdf-dom] Two Questions.">
Reply to <span style="font-weight: 700;">group</span></a>
</div>
<a href="http://groups.yahoo.com/group/wdf-dom/message/5643;_ylc=X3oDMTM0bXJyZTQxBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBG1zZ0lkAzU2NDgEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMjU5ODYzODUzBHRwY0lkAzU2NDM-">Messages in this topic</a>
(<span style="font-weight: 700;">6</span>)
</div>
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #e0ecee; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; ">Recent Activity:</span>
<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
<li style="border-right: 1px solid #000; font-weight: 700; display: inline; padding: 0 5px; margin-left: 0;">
<span class="cat"><a href="http://groups.yahoo.com/group/wdf-dom/members;_ylc=X3oDMTJmaTVoZTlxBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzEyNTk4NjM4NTM-?o=6" style="text-decoration: none;">New Members</a></span>
<span class="ct" style="color: #ff7900;">1</span>
</li>
</ul>
<div style="clear: both; padding-top: 2px; color: #1e66ae;">
<a href="http://groups.yahoo.com/group/wdf-dom;_ylc=X3oDMTJlMjF0MDI1BF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTI1OTg2Mzg1Mw--" style="border-right: 1px solid #000; padding-right: 5px; margin-right: 2px; text-decoration: none;">Visit Your Group</a>
<a href="http://groups.yahoo.com/group/wdf-dom/post;_ylc=X3oDMTJlbzhlZ24yBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI1OTg2Mzg1Mw--" style="font-weight: 700; text-decoration: none;">Start a New Topic</a>
</div>
</div>
<div id="ygrp-grft" style="font-family: Verdana; font-size: 12px; padding: 15px 0;">
<!-- |**|begin egp html banner|**| -->
Unsubscribe<BR>
[email protected]<BR>
<BR>
List info<BR>
<a href="http://www.quirksmode.org/dom/list.html">http://www.quirksmode.org/dom/list.html</a>
<!-- |**|end egp html banner|**| -->
</div>
<div id="ygrp-mkp" style="border: 1px solid #d8d8d8; clear: both; float: left; font-family: Arial; margin: 5px 0 10px 0; padding: 0 10px;">
<div id="hd" style="color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0;">MARKETPLACE</div>
<div id="ads" style="margin-bottom: 10px;">
<div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;">
<p><a href="http://us.ard.yahoo.com/SIG=14koarost/M=493064.13814333.13821539.13298430/D=groups/S=1705016061:MKP1/Y=YAHOO/EXP=1259871053/L=/B=NtfFO0PDhEA-/J=1259863853797889/K=ciLceE2G.xSHs5GU2aX6og/A=5922843/R=0/SIG=11ckn2mo6/*http://advision.webevents.yahoo.com/green/">Going Green: Your Yahoo! Groups resource for green living</a></p> </div>
<div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;">
<hr style="border: 1px solid #d8d8d8;">
<p><a href="http://us.ard.yahoo.com/SIG=14k2et944/M=493064.13814537.13821737.10835568/D=groups/S=1705016061:MKP1/Y=YAHOO/EXP=1259871053/L=/B=N9fFO0PDhEA-/J=1259863853797889/K=ciLceE2G.xSHs5GU2aX6og/A=5898843/R=0/SIG=11kkq36go/*http://advision.webevents.yahoo.com/parentingzone/">Parenting Zone: Find useful resources for a happy, healthy family and home</a></p> </div>
</div>
</div>
<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="http://groups.yahoo.com/;_ylc=X3oDMTJkZnJ0Y2tpBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMjU5ODYzODUz" style="float: left;"><img src="http://l.yimg.com/a/i/us/yg/logo/us.gif" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
<div style="color: #747575; float: right;">Switch to: <a href="mailto:[email protected]?subject=Change Delivery Format: Traditional" style="text-decoration: none;">Text-Only</a>, <a href="mailto:[email protected]?subject=Email Delivery: Digest" class="margin-rt" style="text-decoration: none;">Daily Digest</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="http://docs.yahoo.com/info/terms/" style="text-decoration: none;">Terms of Use</a></div>
</div>
<!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">
<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->
</div> <!-- |**|end egp html banner|**| -->
<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>
<img src="http://geo.yahoo.com/serv?s=97359714/grpId=2564563/grpspId=1705016061/msgId=5648/stime=1259863853/nc1=5689707/nc2=4836045/nc3=5758222" width="1" height="1"> <br>
<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}
#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}
#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}
#ygrp-mkp #ads {
margin-bottom: 10px;
}
#ygrp-mkp .ad {
padding: 0 0;
}
#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}
#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}
#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}
a {
color: #1e66ae;
}
#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}
#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}
#activity span {
font-weight: 700;
}
#activity span:first-child {
text-transform: uppercase;
}
#activity span a {
color: #5085b6;
text-decoration: none;
}
#activity span span {
color: #ff7900;
}
#activity span .underline {
text-decoration: underline;
}
.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}
.attach div a {
text-decoration: none;
}
.attach img {
border: none;
padding-right: 5px;
}
.attach label {
display: block;
margin-bottom: 5px;
}
.attach label a {
text-decoration: none;
}
blockquote {
margin: 0 0 0 4px;
}
.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}
.bold a {
text-decoration: none;
}
dd.last p a {
font-family: Verdana;
font-weight: 700;
}
dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}
dd.last p span.yshortcuts {
margin-right: 0;
}
div.attach-table div div a {
text-decoration: none;
}
div.attach-table {
width: 400px;
}
div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}
div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
text-decoration: none;
}
div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}
.green {
color: #628c2a;
}
.MsoNormal {
margin: 0 0 0 0;
}
o {
font-size: 0;
}
#photos div {
float: left;
width: 72px;
}
#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}
#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}
#reco-category {
font-size: 77%;
}
#reco-desc {
font-size: 77%;
}
.replbq {
margin: 4px;
}
#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}
#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}
#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}
#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}
#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}
#ygrp-mlmsg * {
line-height: 1.22em;
}
#ygrp-mlmsg #logo {
padding-bottom: 10px;
}
#ygrp-mlmsg a {
color: #1E66AE;
}
#ygrp-msg p a {
font-family: Verdana;
}
#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}
#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}
#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}
#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}
#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}
#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}
#ygrp-text {
font-family: Georgia;
}
#ygrp-text p {
margin: 0 0 1em 0;
}
#ygrp-text tt {
font-size: 120%;
}
#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
--ltJ7xklJl54VCDjNep9Rr0DsEXvXhPajAsv9LMv--