トップ «前の日記(2011-01-17(Mon)) 最新 次の日記(2011-01-19(Wed))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2011-01-18(Tue) 比較的温和な晴天

よく分からないが、同じになる

html および script タグは省略。

var first = {};
var second = {};
 
first.data = {foo: "bar"};
second.data = new Object();
second.data.baz = "bar";
 
document.write(first.data.foo == second.data.baz, "<br>");
document.write(first.data.foo === second.data.baz, "<br>");

どちらも true が返る。
どちらの foo も、"bar" というString を含む変数。でいいのか?

この場合、var first = second = {}; とやるとfirst.data.foo が "undifined" になってしまった。
やっぱり分かったような分からないような。

オブジェクトも値になって代入されるのか

var strobj = {};
var newobj = {};
 
strobj.qux = "foobaz";
newobj.qux = { bar: strobj.qux };
 
document.write("newobj qux bar is ", newobj.qux.bar , "<br>");
strobj.qux = "bazfoo";
document.write("newobj qux bar is ", newobj.qux.bar , "<br>");
newobj qux bar is foobar
newobj qux bar is foobar

ここでは qux の値は変化なし。

これも同じになる

var foo = {};
var bar = {};
foo.baz = bar.qux = "quux";
document.write(foo.baz == bar["qux"]);

true が返るのは、オブジェクトは連想配列として使えるから。 らしい。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。