Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #23063

Re: Trying to view the properties of an object

Path csiph.com!usenet.pasdenom.info!news.franciliens.net!news.muarf.org!nntpfeed.proxad.net!proxad.net!feeder1-1.proxad.net!217.188.199.168.MISMATCH!takemy.news.telefonica.de!telefonica.de!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail
Content-Type text/plain; charset="UTF-8"
Message-ID <1991992.lvnxbIPBPy@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Reply-To Thomas 'PointedEars' Lahn <cljs@PointedEars.de>
Organization PointedEars Software (PES)
Date Tue, 11 Feb 2014 13:39:07 +0100
User-Agent KNode/4.11.3
Content-Transfer-Encoding 8Bit
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
Subject Re: Trying to view the properties of an object
Newsgroups comp.lang.javascript
References <properties-20140211082627@ram.dialup.fu-berlin.de>
MIME-Version 1.0
Lines 118
NNTP-Posting-Date 11 Feb 2014 13:39:46 CET
NNTP-Posting-Host dea472c8.newsspool4.arcor-online.net
X-Trace DXC==TWihoVSKR^PU8j_I0DN6_4IUK<Cl32<Q4Fo<]lROoRQ8kF<OcfhCO[Qce:MKiA0>UDZm8W4\YJN\YUVHKH;GI^WEEOdb:9C:^]JBNUHXQ4lN\
X-Complaints-To usenet-abuse@arcor.de
Xref csiph.com comp.lang.javascript:23063

Show key headers only | View raw


Stefan Ram wrote:

                                                           [Citation needed]
>   I am trying to view the properties of a prototype. They say
>   in JavaScript everything is an object.

Dump “them”, then.  You should know better than to rely blindly on such 
unfounded statements. 

ECMAScript implementations like JavaScript do have primitive data types [1].

>   Therefore, I assume that a prototype is an object too.

Ex falso quodlibet; however, a (working) prototype must be an object, or 
null, for other reasons [2].

>   I started with typing this into the Firefox Web console:
> 
> 0  . __proto__ . __proto__

__proto__ is a proprietary property.  The standards-compliant way to 
determine the prototype of an object is Object.getPrototypeOf(o). [3]  Which 
would have shown you that there are primitive data types, and that the 
statement “in JavaScript everything is an object” is provably false:

| >> Object.getPrototypeOf(0)
| TypeError: 0 is not an object
 
>   . It gave me:
> 
> [object Object]
> 
>   . I assumed that this was an object (»everything is an
>   object«), and so I wanted to list all its properties,
>   but the following loop did not produce any output:
> 
> for( var i in 0 . __proto__ . __proto__ )console.log( i );

Not all properties are enumerable (have the [[Enumerable]] attribute set per 
ES 5.x, or do not have the [[DontEnum]] attribute set per ES 1 through 3 
Final). [6][7][8]

A for-in statement iterates only over the enumerable properties of an object 
*and* over the enumerable properties it inherits from its prototype, in 
arbitrary order. [9]
 
>   . The next attempt, to my surprise, printed the numbers
>   from 0 to 13:

You want to reconsider your learning technique as well.

> for( var i in Object.getOwnPropertyNames( 0 . __proto__ . __proto__ ))
> console.log( i );
> 
> 0
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10
> 11
> 12
> 13

Object.getOwnPropertyNames() returns a reference to an Array instance 
representing an array of primitive string values, whereas each string value 
is the name of a property that the object does not inherit from its 
prototype. [10]

The names of the own *enumerable* properties of an Array instance include 
the array indexes. [11]  (However, because implementations may differ and 
order is not guaranteed with for-in, you SHOULD NOT iterate over an Array in 
*this* way.)
 
>   . What I actually wanted to see was a list of all the
>   well-known object prototype properties (functions) such as
> 
> hasOwnProperty
> isPrototypeOf
> propertyIsEnumerable
> toLocaleString
> toSource
> toString
> unwatch
> valueOf
> watch
> 
>   .

Skip for-in, then.

BTW, your peculiar posting style is _not_ appreciated. [12]

__________
[1] <http://ecma-international.org/ecma-262/5.1/#sec-8>
[2] <http://ecma-international.org/ecma-262/5.1/#sec-8.6.2>
[3] <http://ecma-international.org/ecma-262/5.1/#sec-15.2.3.2>
[6] <http://ecma-international.org/ecma-262/5.1/#sec-8.6.1>
[7] <http://ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,
%203rd%20edition,%20December%201999.pdf>
[8] Ecma Interntional (2000). ECMAScript Language Specification. Edition 3 
    Final.  <http://www.mozilla.org/js/language/E262-3.pdf> (retrieved
    2002-07-22).
[9] <http://ecma-international.org/ecma-262/5.1/#sec-12.6.4>
[10] <http://ecma-international.org/ecma-262/5.1/#sec-15.2.3.4>
[11] <http://ecma-international.org/ecma-262/5.1/#sec-8.12.5>
[12] <http://PointedEars.de/faq#posting>

-- 
PointedEars

Twitter: @PointedEars2
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Back to comp.lang.javascript | Previous | Next | Find similar | Unroll thread


Thread

Re: Trying to view the properties of an object Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-02-11 13:39 +0100

csiph-web