機能ではないJavaScriptオブジェクトはありますか?すべてのJavaScriptオブジェクトは機能していますか?
javascript: x=y=z=Object; alert([window.navigator.userAgent,x,y,z].join("\n\n"))
(commentとして。x
、y
、z
は単にObject
の値がx
に割り当てられ、それらは 『同一』であるているためObject
もfunction Object(){ ... }
単に参照している場合に参照していることがありました"プルーフ"
javascript:x=Object;x.p=43;alert([x==Object,x===Object,x.p,Object.p])
ディスプレイ
true,true,43,43
与えられたfunction Thing(){}
はx=new Thing()
ですx
は、オブジェクトまたは参照を参照しますか? new Thing()
とThing
はどうですか?またはy
をy=x=new Thing()
またはy=x=Thing
に設定しますか? Thing=function(){}
?その区別は間違いです。 "Everything"(またはそれは?)は参照によって呼び出されますが、文字列を評価することによって名前による呼び出しを強制することができます。だから... ...)
javascript:
void function(x,y,z){
alert( [window.navigator.userAgent,x,y,z].join("\n\n"))
}(Object,Object,Object)
または
javascript:
void function(x){ (function (y){ (function (z){
alert( [window.navigator.userAgent,x,y,z].join("\n\n"))
})(y) })(x) }(Object)
(うまくかなり議論の余地がない - function
の値が(...)
またはvoid
を使用して強制されなければならない(...)
のニュアンスが微妙です:
javascript: /* 43.p gives a runtime error but not ... */
alert([ (43).p=34, 43["q"]=17, (x=43).z="hmmm" ]);
alert([ 43["p"], (43).z, x.p, x["z"], x]);
。
ディスプレイ34,17,hmmm
および,,,,43
)
またはオブジェクト
javascript:alert([window.navigator.userAgent,Object,Object,Object].join("\n\n"))
の偶数アレイが得られる:
のMozilla/5.0(X11。 U; Linux i686; en-US; RV:1.9.2.3)のGecko/20100423のUbuntu/10.04(明快)のFirefox/3.6.3
関数オブジェクト(){ [ネイティブコード]}
関数オブジェクト(){ [ネイティブコード]}
関数オブジェクト(){ [ネイティブコード]}
オブジェクトされていない多くのオブジェクトが存在します。
としては、それが変更された場合、オブジェクトは、それ自体ではないかもしれない、answersのいずれかで指摘。
危険!危険!ウィルロビンソン!
x=y=z=Object=null; alert([window.navigator.userAgent,Object,x,y,z].join("\n\n"));
参照
- Object and Function are quite confusing
- Difference between a constructor and an Object
- Is Function really an Object
- Is JavaScript function a "function" or an "object" or both?
- Every Object is a function and every function is Object - Which is Correct?
- Why in JavaScript is a function considered both a constructor and an object?
関数はオブジェクト – Ibu
@Ibuです...ではなく、すべてのオブジェクトは、機能;-) –
@pstあり、私の文 – Ibu