Terminology? Object structure definition, not a class?

J

John G Harris

That was certainly not my intent. But I am sure you know what I
meant.
<snip>

It's noticeable that the outline description of [[HasInstance]] (sec
8.6.2) in the ES3 standard has the same confusion, and that the
rewording in the ES5 standard is a fudge that is no better.

John
 
D

David Mark

On Sat, 24 Jul 2010 at 13:06:49, in comp.lang.javascript, David Mark
That was certainly not my intent.  But I am sure you know what I
meant.

  <snip>

It's noticeable that the outline description of [[HasInstance]] (sec
8.6.2) in the ES3 standard has the same confusion, and that the
rewording in the ES5 standard is a fudge that is no better.

Yes. The specs are an invaluable (and slightly flawed) resource, but
will definitely confuse absolute beginners. That's why many opt for
the comfortable sales pitch of jQuery or the like (then they can
ostensibly skip the "hard" stuff and straight to the head of the
class).
 
G

Garrett Smith

On 2010-07-23 01:12 PM, Alan Gutierrez wrote:
John G Harris wrote:
[snip informative explanation]
Thank you. Learn something new every day.

function Person(){}
Person.prototype = {};
var a = new Person;
Use the call operator. Thanks.

There isn't a call operator in ECMAScript.

Oh brother. And, in your world, what do you call it?

If you weren't a perpetual jerk or if you had at least asked a smart
question non-insulting manner, I'd probably try and guess as to what I
think you might have meant.

But instead, you posted -- and it was pointed out -- your own made-up
terminology to make a rather pointless comment. You followed that up
with a loaded question[1] about "my world" (how ironic). And we just
covered "my world" a day or two prior...

Found it. You wrote:
| In your own fantasy world I presume. In reality, your response
| demonstrated a stunning lack of comprehension.

And my reply:
| I see you've snipped what was written and replied flippantly. It
| reflects typical behavior of David Mark.

And again, another typical DM reply. After a brief hiatus, I see the NG
littered with more of the same from you.

Ironically, you missed the actual problem in the code I posted. The
problem is that my code omitted a semicolon. Two, actually. What is more
ironic is that in the code guidelines document[2] goes to great length
to explain the problem and in so doing, explains the lexical grammar
production for what might likely be your "call operator" thing.

The production is called `Arguments`. Then again, you've not explained
yourself; so about the best I can do is guess as to what you wanted to ask.

See also:
[1] <http://catb.org/esr/faqs/smart-questions.html>
[2] <http://jibbering.com/faq/notes/code-guidelines/>
 
D

David Mark

On 2010-07-23 08:18 PM, David Mark wrote:
On 2010-07-23 01:12 PM, Alan Gutierrez wrote:
John G Harris wrote:
[snip informative explanation]
Thank you. Learn something new every day.
Example:
     function Person(){}
     Person.prototype = {};
     var a = new Person;
Use the call operator.  Thanks.
There isn't a call operator in ECMAScript.
Oh brother.  And, in your world, what do you call it?

If you weren't a perpetual jerk or if you had at least asked a smart
question non-insulting manner, I'd probably try and guess as to what I
think you might have meant.

If you weren't such a perpetual loser, perhaps you wouldn't have to be
corrected so often.
But instead, you posted -- and it was pointed out -- your own made-up
terminology to make a rather pointless comment.

I did no such thing. Your nonsensical reply demonstrates nothing but
your own ignorance.
You followed that up
with a loaded question[1] about "my world" (how ironic).

Not ironic at all given your history.
And we just
covered "my world" a day or two prior...

Found it. You wrote:

Oh here we go...
| In your own fantasy world I presume.  In reality, your response
| demonstrated a stunning lack of comprehension.

No context, but it sounds like a reasonable response to some
nonsensical comment of yours.
And my reply:
| I see you've snipped what was written and replied flippantly. It
| reflects typical behavior of David Mark.

And that was the proverbial pot calling the kettle black (as evidenced
here once again).
And again, another typical DM reply. After a brief hiatus, I see the NG
littered with more of the same from you.

If you have something to say about my "litter" then say it.
Ironically, you missed the actual problem in the code I posted.

What code?
The
problem is that my code omitted a semicolon.
So?

Two, actually. What is more
ironic is that in the code guidelines document[2] goes to great length
to explain the problem and in so doing, explains the lexical grammar
production for what might likely be your "call operator" thing.

You are such a numb-skull.
The production is called `Arguments`. Then again, you've not explained
yourself; so about the best I can do is guess as to what you wanted to ask.

It was a rhetorical question.

And so, instead of calling the call operator what it is, you refer to
it as "Arguments". I'm sure that won't cause any confusion.
 
G

Garrett Smith

On 2010-07-23 08:18 PM, David Mark wrote:
On 2010-07-23 01:12 PM, Alan Gutierrez wrote:
John G Harris wrote:
[snip informative explanation]
Thank you. Learn something new every day.

function Person(){}
Person.prototype = {};
var a = new Person;
Use the call operator. Thanks.
There isn't a call operator in ECMAScript.
Oh brother. And, in your world, what do you call it?

If you weren't a perpetual jerk or if you had at least asked a smart
question non-insulting manner, I'd probably try and guess as to what I
think you might have meant.

If you weren't such a perpetual loser, perhaps you wouldn't have to be
corrected so often.
But instead, you posted -- and it was pointed out -- your own made-up
terminology to make a rather pointless comment.

I did no such thing. Your nonsensical reply demonstrates nothing but
your own ignorance.

Do you have a special version of ECMA-262 that defines a call operator,
or did you just not RTFM?
What code?

You made a comment on code I wrote just few posts back "Please use the
call operator thanks".

So you missed the problem and made up some nonsense. Ironically, the
document that explains the actual problem sheds light on your irrelevant
nonsense.
Two, actually. What is more
ironic is that in the code guidelines document[2] goes to great length
to explain the problem and in so doing, explains the lexical grammar
production for what might likely be your "call operator" thing.

You are such a numb-skull.

No, that's you.
It was a rhetorical question.

That's not how I saw it.
And so, instead of calling the call operator what it is, you refer to
it as "Arguments". I'm sure that won't cause any confusion.

I refer to `Arguments` as `Arguments`; not as "call operator" -- that's
your made-up terminology. The production for `Arguments` is clearly
defined in ECMA-262 under 11.2 Left-Hand-Side Expressions.

Anyone can see quickly that production is defined under "Left-Hand-Side
Expressions" in ECMA-262. For convenience:
<http://bclary.com/2004/11/07/#a-11.2>

| Arguments:
| ()
| ( ArgumentList )

And so continuing to call `Arguments` the "call operator" shouldn't be
fooling anybody at this point. It is somewhat revealing to the facade
that there actually is such a thing (there isn't, go RTFM) and that you
know what you're talking about (pretty obvious that you don't).

If there were such a thing, then the pertinent part of the spec could
have been cited and the discussion of the alleged "call operator" would
have been quickly resolved. However anyone can RTFM see that you're full
of shit.

The reason it is misleading to call `Arguments` a "call operator" is
that the production `Arguments` is used in NewExpression and
CallExpression, respectively, as:

new MemberExpression Arguments
and
MemberExpression Arguments

- and so it wouldn't make sense to refer to something used for `new` as
a "call" operator; the example code I posted was using `new`, which
calls `[[Construct]]`, not [[Call]].

Being faced with a fact with overwhelming evidence is too uncomfortable
for you to accept and so you reject reality and use name calling instead.

Now here's a rhetorical question: What does it say about you when you
hurl insults while continuing to use your own made-up terminology, even
after it being pointed out to you?

You could have stopped with "unreliable source of information regarding
ECMAScript," but you seem intent on destroying your reputation with
obvious falsehoods.
 
D

David Mark

On 2010-07-23 11:10 PM, David Mark wrote:
On 2010-07-23 08:18 PM, David Mark wrote:
On 2010-07-23 01:12 PM, Alan Gutierrez wrote:
John G Harris wrote:
[snip informative explanation]
Thank you. Learn something new every day.
Example:
      function Person(){}
      Person.prototype = {};
      var a = new Person;
Use the call operator.  Thanks.
There isn't a call operator in ECMAScript.
Oh brother.  And, in your world, what do you call it?
If you weren't a perpetual jerk or if you had at least asked a smart
question non-insulting manner, I'd probably try and guess as to what I
think you might have meant.
If you weren't such a perpetual loser, perhaps you wouldn't have to be
corrected so often.
I did no such thing.  Your nonsensical reply demonstrates nothing but
your own ignorance.

Do you have a special version of ECMA-262 that defines a call operator,
or did you just not RTFM?


What code?

You made a comment on code I wrote just few posts back "Please use the
call operator thanks".

So you missed the problem and made up some nonsense. Ironically, the
document that explains the actual problem sheds light on your irrelevant
nonsense.
Two, actually. What is more
ironic is that in the code guidelines document[2] goes to great length
to explain the problem and in so doing, explains the lexical grammar
production for what might likely be your "call operator" thing.
You are such a numb-skull.

No, that's you.

I know you are but what am I? :)
That's not how I saw it.

Your reading comprehension has never been in question (it seems to be
non-existent).
I refer to `Arguments` as `Arguments`; not as "call operator" -- that's
your made-up terminology.

It is certainly not made-up terminology.
The production for `Arguments` is clearly
defined in ECMA-262 under 11.2 Left-Hand-Side Expressions.

There's no water in Coca-Cola. It's called H20. :)

Again, the specs are aimed at implementors. There is a lot of talk
about productions as implementors must write code that parses the
language. Much of the language in the specs is out of place in
discussions among programmers. In other words, you have a serious
communication problem.

Anyone can see quickly that production is defined under "Left-Hand-Side
Expressions" in ECMA-262. For convenience:
<http://bclary.com/2004/11/07/#a-11.2>

| Arguments:
|  ()
|  ( ArgumentList )

See above. Remember when you wanted to replace every occurrence of
"Javascript" in the FAQ to "ECMAScript"? That was the mother of all
such related communication breakdowns. Learn from your mistakes.
And so continuing to call `Arguments` the "call operator" shouldn't be
fooling anybody at this point.

You come off as a petulant child.
It is somewhat revealing to the facade
that there actually is such a thing (there isn't, go RTFM) and that you
know what you're talking about (pretty obvious that you don't).

No, it's pretty obvious to anyone who reads this group that you are an
obsessive, beetle-browed nitwit with serious communication issues.
If there were such a thing, then the pertinent part of the spec could
have been cited and the discussion of the alleged "call operator" would
have been quickly resolved. However anyone can RTFM see that you're full
of shit.

See above. You haven't got a leg to stand on (except in your own
confused head).
The reason it is misleading to call `Arguments` a "call operator" is
that the production `Arguments` is used in NewExpression and
CallExpression, respectively, as:

   new MemberExpression Arguments
and
   MemberExpression Arguments

See above. Quoting the specs over and over is just underscoring my
points.
- and so it wouldn't make sense to refer to something used for `new` as
a "call" operator; the example code I posted was using `new`, which
calls `[[Construct]]`, not [[Call]].
Again.


Being faced with a fact with overwhelming evidence is too uncomfortable
for you to accept and so you reject reality and use name calling instead.

Nope. That's another one of your irritating little habits. You
resort to name-calling and then whine when it is reciprocated.
Now here's a rhetorical question: What does it say about you when you
hurl insults while continuing to use your own made-up terminology, even
after it being pointed out to you?

Your delusions say nothing about me (except perhaps to you).
You could have stopped with "unreliable source of information regarding
ECMAScript," but you seem intent on destroying your reputation with
obvious falsehoods.

You seem intent on posting childish OT nonsense. For years you
haven't had a reputation as anything but a loon and amnesiac, who
misquotes, misconstrues, misunderstands and ultimately makes up
stories to deflect attention from his own ineptitude. In that regard,
your place in history is secure.
 
D

David Mark

On 2010-08-07 09:13 PM, David Mark wrote:
On 2010-07-23 11:10 PM, David Mark wrote:
On 2010-07-23 08:18 PM, David Mark wrote:
On 2010-07-23 01:12 PM, Alan Gutierrez wrote:
John G Harris wrote:
[snip informative explanation]
Thank you. Learn something new every day.
Example:
      function Person(){}
      Person.prototype = {};
      var a = new Person;
Use the call operator.  Thanks.
There isn't a call operator in ECMAScript.
Oh brother.  And, in your world, what do you call it?
If you weren't a perpetual jerk or if you had at least asked a smart
question non-insulting manner, I'd probably try and guess as to whatI
think you might have meant.
If you weren't such a perpetual loser, perhaps you wouldn't have to be
corrected so often.
But instead, you posted -- and it was pointed out -- your own made-up
terminology to make a rather pointless comment.
I did no such thing.  Your nonsensical reply demonstrates nothing but
your own ignorance.
Do you have a special version of ECMA-262 that defines a call operator,
or did you just not RTFM?
You made a comment on code I wrote just few posts back "Please use the
call operator thanks".
So you missed the problem and made up some nonsense. Ironically, the
document that explains the actual problem sheds light on your irrelevant
nonsense.
Two, actually. What is more
ironic is that in the code guidelines document[2] goes to great length
to explain the problem and in so doing, explains the lexical grammar
production for what might likely be your "call operator" thing.
You are such a numb-skull.
No, that's you.

I know you are but what am I?  :)


That's not how I saw it.

Your reading comprehension has never been in question (it seems to be
non-existent).


I refer to `Arguments` as `Arguments`; not as "call operator" -- that's
your made-up terminology.

It is certainly not made-up terminology.
The production for `Arguments` is clearly
defined in ECMA-262 under 11.2 Left-Hand-Side Expressions.

There's no water in Coca-Cola.  It's called H20.  :)

I suppose I better head off el nitwit by pointing out my typo. Can
you spot it?
 
G

Garrett Smith

On 2010-07-23 11:10 PM, David Mark wrote:
On 2010-07-23 08:18 PM, David Mark wrote:
On 2010-07-23 01:12 PM, Alan Gutierrez wrote:
John G Harris wrote:
[snip informative explanation]
Thank you. Learn something new every day.

function Person(){}
Person.prototype = {};
var a = new Person;
Use the call operator. Thanks.
There isn't a call operator in ECMAScript.
Oh brother. And, in your world, what do you call it?

Part of the misthinking that went into calling `Arguments` a "call
operator" is the believe that `Arguments` is an operator -- possibly
some sort of unary operator, like the delete, void, typeof, any postfix
or prefix operators, or any of the logical operators. It isn't.

Parenthesis is either `Arguments` or as Grouping Operator, depending on
the context in which it appears. When parenthesis appear to the right of
a MemeberExpression, then a CallExpression is formed. This makes
Arguments look like it is being used as an operator and it does act like
one here.

However, when parenthesis appears to the right of a NewExpression, then
it is used to pass values to the constructor function being called. The
`Arguments` doesn't cause the function to be called. In contrast, it is
the new Operator that causes the function to be called.

A related thread that explains it (for those who are not completely
incorrigable):
<http://groups.google.vu/group/comp.lang.javascript/browse_thread/thread/defa46670afd31b7>


[ranting]
You seem intent on posting childish OT nonsense. For years you
haven't had a reputation as anything but a loon and amnesiac, who
misquotes, misconstrues, misunderstands and ultimately makes up
stories to deflect attention from his own ineptitude. In that regard,
your place in history is secure.

Uh-huh. Seems you agree with me about you being a jerk.
 
D

David Mark

On 2010-08-07 09:13 PM, David Mark wrote:
On 2010-07-23 11:10 PM, David Mark wrote:
On 2010-07-23 08:18 PM, David Mark wrote:
On 2010-07-23 01:12 PM, Alan Gutierrez wrote:
John G Harris wrote:
[snip informative explanation]
Thank you. Learn something new every day.
Example:
       function Person(){}
       Person.prototype = {};
       var a = new Person;
Use the call operator.  Thanks.
There isn't a call operator in ECMAScript.
Oh brother.  And, in your world, what do you call it?

Part of the misthinking that went into calling `Arguments` a "call
operator" is the believe that `Arguments` is an operator -- possibly
some sort of unary operator, like the delete, void, typeof, any postfix
or prefix operators, or any of the logical operators. It isn't.

Parenthesis is either `Arguments` or as Grouping Operator, depending on
the context in which it appears. When parenthesis appear to the right of
a MemeberExpression, then a CallExpression is formed. This makes
Arguments look like it is being used as an operator and it does act like
one here.

However, when parenthesis appears to the right of a NewExpression, then
it is used to pass values to the constructor function being called. The
`Arguments` doesn't cause the function to be called. In contrast, it is
the new Operator that causes the function to be called.

It is well-established that the paranthesis (or call operator as it is
commonly known) is optional when using the - new - operator. Leaving
it off is bad form though (as I told you). Your subsequent,
irrelevant rant about what the specs call it is typical.
A related thread that explains it (for those who are not completely
incorrigable):
<http://groups.google.vu/group/comp.lang.javascript/browse_thread/thre...>

Whatever. Call me incorrigible, but I don't follow your links.
[ranting]


You seem intent on posting childish OT nonsense.  For years you
haven't had a reputation as anything but a loon and amnesiac, who
misquotes, misconstrues, misunderstands and ultimately makes up
stories to deflect attention from his own ineptitude.  In that regard,
your place in history is secure.

Uh-huh. Seems you agree with me about you being a jerk.

Reading comprehension problem flaring up again? :)
 
J

John G Harris

It is well-established that

So well established that it got written into ECMA 262 v2, but of course
programmers wouldn't read that.

the paranthesis (or call operator as it is
commonly known)

But not commonly known as such round here.

C++ has operator(), used to attach a [[Call]] interface to user-defined
objects, but that's not needed in javascript.

is optional when using the - new - operator. Leaving
it off is bad form though (as I told you).
<snip>

new Date is to be expected in a scripting language aimed at people
who don't like semicolons.

John
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,077
Messages
2,570,566
Members
47,202
Latest member
misc.

Latest Threads

Top