Help | Site Map
Connecting Tech Pros Worldwide
 
 
LinkBack Thread Tools
  #1  
Old August 26th, 2008, 10:15 PM
yawnmoth
Guest
 
Posts: n/a
Default is 'this' always defined for functions?

http://www.frostjedi.com/terra/scripts/demo/this.html

'this' is defined, as I understand it, for event handlers, but why is
it defined, here?

Here's the code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>this</title>
</head>

<body>
<script type="text/javascript">
(function() {
if (this) {
alert("test exists");
} else {
alert("test doesn't exist");
}
})();
</script>
</body>
</html>
  #2  
Old August 26th, 2008, 10:25 PM
Joost Diepenmaat
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

yawnmoth <terra1024@yahoo.comwrites:
Quote:
http://www.frostjedi.com/terra/scripts/demo/this.html
>
'this' is defined, as I understand it, for event handlers, but why is
it defined, here?
>
Here's the code:
>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>this</title>
</head>
>
<body>
<script type="text/javascript">
(function() {
if (this) {
alert("test exists");
} else {
alert("test doesn't exist");
}
})();
</script>
</body>
</html>
"this" means the object of a method call. in short, whenever it
doens't refer to anything more specific, it refers to the global
object (the "window" object, ignoring some details).

In method calls on a specific object, "this" refers to the object of
the call (and DOM events act like method calls in that respect).

function bla() {
// do something with "this"
}

bla() // act on the global object

var foo = { bar: bla }

foo.bla() // act on the foo object

var zee = {};

foo.bla.call(z) // act on the zee object


--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
  #3  
Old August 26th, 2008, 10:25 PM
Joost Diepenmaat
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

Joost Diepenmaat <joost@zeekat.nlwrites:
Quote:
var zee = {};
>
foo.bla.call(z) // act on the zee object
that should have been

foo.bla.call(zee) // act on the zee object

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
  #4  
Old August 26th, 2008, 10:55 PM
yawnmoth
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

On Aug 26, 4:20*pm, Joost Diepenmaat <jo...@zeekat.nlwrote:
Quote:
Joost Diepenmaat <jo...@zeekat.nlwrites:
Quote:
var zee = {};
>
Quote:
foo.bla.call(z) // act on the zee object
>
that should have been
>
foo.bla.call(zee) // act on the zee object
Thanks - I appreciate it!
  #5  
Old August 27th, 2008, 12:25 AM
Thomas 'PointedEars' Lahn
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

Joost Diepenmaat wrote:
Quote:
"this" means the object of a method call. in short, whenever it
doens't refer to anything more specific, it refers to the global
object [...]
Period. The rest of that paragraph is unnecessary to mention here and
ultimately misleading.


PointedEars
--
var bugRiddenCrashPronePieceOfJunk = (
navigator.userAgent.indexOf('MSIE 5') != -1
&& navigator.userAgent.indexOf('Mac') != -1
) // Plone, register_function.js:16
  #6  
Old August 27th, 2008, 12:35 AM
Joost Diepenmaat
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
Quote:
Joost Diepenmaat wrote:
Quote:
>"this" means the object of a method call. in short, whenever it
>doens't refer to anything more specific, it refers to the global
>object [...]
>
Period. The rest of that paragraph is unnecessary to mention here and
ultimately misleading.
You know, it would have been more informative for anyone following
this thread if you'd quoted the part you objected to, and refered to
the current thread where you're discussing that subject. This kind of
reply is not helping anyone.

Thomas, I respect your knowledge and insight, but I really do not like
your posting style.

For future readers: the window/global object thread starts at
Message-ID: <EK%rk.4889$zv7.720@flpi143.ffdc.sbc.com>

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
  #7  
Old August 27th, 2008, 12:45 AM
Thomas 'PointedEars' Lahn
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

Joost Diepenmaat wrote:
Quote:
Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
Quote:
>Joost Diepenmaat wrote:
Quote:
>>"this" means the object of a method call. in short, whenever it
>>doens't refer to anything more specific, it refers to the global
>>object [...]
>Period. The rest of that paragraph is unnecessary to mention here and
>ultimately misleading.
>
You know, it would have been more informative for anyone following
this thread if you'd quoted the part you objected to, and refered to
the current thread where you're discussing that subject. This kind of
reply is not helping anyone.
It would have helped you, would you not have fallen victim to your
self-delusions.
Quote:
Thomas, I respect your knowledge and insight, but I really do not like
your posting style.
Go on crying. I am not going to repeat myself just to pamper those who
cannot seem to follow this simple rule of Usenet: read before you post.


Score adjusted

PointedEars
--
Use any version of Microsoft Frontpage to create your site.
(This won't prevent people from viewing your source, but no one
will want to steal it.)
-- from <http://www.vortex-webdesign.com/help/hidesource.htm>
  #8  
Old August 27th, 2008, 12:45 AM
Joost Diepenmaat
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
Quote:
Joost Diepenmaat wrote:
Quote:
>Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
Quote:
>>Joost Diepenmaat wrote:
>>>"this" means the object of a method call. in short, whenever it
>>>doens't refer to anything more specific, it refers to the global
>>>object [...]
>>Period. The rest of that paragraph is unnecessary to mention here and
>>ultimately misleading.
>>
>You know, it would have been more informative for anyone following
>this thread if you'd quoted the part you objected to, and refered to
>the current thread where you're discussing that subject. This kind of
>reply is not helping anyone.
>
It would have helped you, would you not have fallen victim to your
self-delusions.
>
Quote:
>Thomas, I respect your knowledge and insight, but I really do not like
>your posting style.
>
Go on crying. I am not going to repeat myself just to pamper those who
cannot seem to follow this simple rule of Usenet: read before you post.
>
>
Score adjusted
Please adjust it a lot lower, and don't bother replying to me.

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
  #9  
Old August 27th, 2008, 01:35 AM
Thomas 'PointedEars' Lahn
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

Joost Diepenmaat wrote:
Quote:
Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
Quote:
>Joost Diepenmaat wrote:
Quote:
>>Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
>>>Joost Diepenmaat wrote:
>>>>"this" means the object of a method call. in short, whenever it
>>>>doens't refer to anything more specific, it refers to the global
>>>>object [...]
>>>Period. The rest of that paragraph is unnecessary to mention here and
>>>ultimately misleading.
>>You know, it would have been more informative for anyone following
>>this thread if you'd quoted the part you objected to, and refered to
>>the current thread where you're discussing that subject. This kind of
>>reply is not helping anyone.
>It would have helped you, would you not have fallen victim to your
>self-delusions.
>[...]
>Score adjusted
>
Please adjust it a lot lower, and don't bother replying to me.
My apologies, this was uncalled for. While I do not think the thread
reference was necessary (we discussed that only hours ago), my quoting
was certainly suboptimal as was my second followup here.


PointedEars
--
Anyone who slaps a 'this page is best viewed with Browser X' label on
a Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network. -- Tim Berners-Lee
  #10  
Old August 27th, 2008, 01:45 AM
yawnmoth
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

On Aug 26, 6:19*pm, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:
Quote:
Joost Diepenmaat wrote:
Quote:
"this" means the object of a method call. in short, whenever it
doens't refer to anything more specific, it refers to the global
object [...]
>
Period. *The rest of that paragraph is unnecessary to mention here and
ultimately misleading.
Do they constitute poor coding practices, or something? I actually
thought it was useful (didn't know about call(), for instance),
although if I should be doing something differently, I'd like to
know...
  #11  
Old August 27th, 2008, 01:45 AM
Joost Diepenmaat
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
Quote:
Joost Diepenmaat wrote:
Quote:
>Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
Quote:
>>Joost Diepenmaat wrote:
>>>Thomas 'PointedEars' Lahn <PointedEars@web.dewrites:
>>>>Joost Diepenmaat wrote:
>>>You know, it would have been more informative for anyone following
>>>this thread if you'd quoted the part you objected to, and refered to
>>>the current thread where you're discussing that subject. This kind of
>>>reply is not helping anyone.
>>It would have helped you, would you not have fallen victim to your
>>self-delusions.
>>[...]
>>Score adjusted
>>
>Please adjust it a lot lower, and don't bother replying to me.
>
My apologies, this was uncalled for. While I do not think the thread
reference was necessary (we discussed that only hours ago), my quoting
was certainly suboptimal as was my second followup here.
Apologies accepted.

I'm looking forward to more constructive (if occasionally heated)
discussions in the future.

Joost.

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
  #12  
Old August 27th, 2008, 01:55 AM
Thomas 'PointedEars' Lahn
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

yawnmoth wrote:
Quote:
On Aug 26, 6:19 pm, Thomas 'PointedEars' Lahn <PointedE...@web.dewrote:
Quote:
>Joost Diepenmaat wrote:
Quote:
>>"this" means the object of a method call. in short, whenever it
>>doens't refer to anything more specific, it refers to the global
>>object [...]
>Period. The rest of that paragraph is unnecessary to mention here and
>ultimately misleading.
>
Do they constitute poor coding practices, or something?
Not Joosts examples, they are OK (but see below). (It would turn out my
suboptimal quoting was even more misleading than what I was actually
referring to. Sigh. [psf 10.1])
Quote:
I actually thought it was useful (didn't know about call(), for
instance), although if I should be doing something differently, I'd like
to know...
Function.prototype.call() should be feature-tested before called because it
is not universally supported:

<http://PointedEars.de/es-matrix/#f>


HTH

PointedEars
--
Anyone who slaps a 'this page is best viewed with Browser X' label on
a Web page appears to be yearning for the bad old days, before the Web,
when you had very little chance of reading a document written on another
computer, another word processor, or another network. -- Tim Berners-Lee
  #13  
Old August 27th, 2008, 01:55 AM
Joost Diepenmaat
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

yawnmoth <terra1024@yahoo.comwrites:
Quote:
On Aug 26, 6:19Â*pm, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:
Quote:
>Joost Diepenmaat wrote:
Quote:
"this" means the object of a method call. in short, whenever it
doens't refer to anything more specific, it refers to the global
object [...]
>>
>Period. Â*The rest of that paragraph is unnecessary to mention here and
>ultimately misleading.
>
Do they constitute poor coding practices, or something? I actually
thought it was useful (didn't know about call(), for instance),
although if I should be doing something differently, I'd like to
know...
Thomas has (reasonably justifiable) objections to calling the "window"
object the global object. See the 'Why "window.alert()" over
"alert()"?' thread (I linked to it in this one).

--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
  #14  
Old August 27th, 2008, 01:55 AM
yawnmoth
Guest
 
Posts: n/a
Default Re: is 'this' always defined for functions?

On Aug 26, 7:46*pm, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:
Quote:
yawnmoth wrote:
Quote:
On Aug 26, 6:19 pm, Thomas 'PointedEars' Lahn <PointedE...@web.dewrote:
Quote:
Joost Diepenmaat wrote:
>"this" means the object of a method call. in short, whenever it
>doens't refer to anything more specific, it refers to the global
>object [...]
Period. *The rest of that paragraph is unnecessary to mention here and
ultimately misleading.
>
Quote:
Do they constitute poor coding practices, or something?
>
Not Joosts examples, they are OK (but see below). *(It would turn out my
suboptimal quoting was even more misleading than what I was actually
referring to. *Sigh. [psf 10.1])
>
Quote:
I actually thought it was useful (didn't know about call(), for
instance), although if I should be doing something differently, I'd like
to know...
>
Function.prototype.call() should be feature-tested before called because it
is not universally supported:
>
<http://PointedEars.de/es-matrix/#f>
Thanks! I'll need to read that "Why "window.alert()" over
"alert()"?" thread Joost mentioned :)

 

Bookmarks


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over network members.
Post your question now . . .
It's fast and it's free

Popular Articles