{"id":6037,"date":"2014-02-22T01:28:02","date_gmt":"2014-02-21T16:28:02","guid":{"rendered":"http:\/\/rentan.org\/blog\/?p=6037"},"modified":"2014-02-22T01:28:02","modified_gmt":"2014-02-21T16:28:02","slug":"dmonkey-new-via-variable","status":"publish","type":"post","link":"https:\/\/rentan.org\/blog\/2014\/02\/22\/dmonkey-new-via-variable\/","title":{"rendered":"DMonkey: \u5909\u6570\u7d4c\u7531\u306enew\u6f14\u7b97\u5b50"},"content":{"rendered":"<pre class=\"prog_code\">\r\n<code>function Foo () {\r\n  alert ('Foo constructor');\r\n}\r\nFoo.prototype.p = function () {\r\n  alert (\"this is Foo\\nnameOf = \" + nameOf (this));\r\n};\r\n\r\nfunction Baz () {\r\n  alert ('Baz constructor');\r\n}\r\nBaz.prototype.p = function () {\r\n  alert (\"this is Baz\\nnameOf = \" + nameOf (this));\r\n};\r\n\r\nfunction test () {\r\n  var f = new Foo ();  \/\/ Foo constructor\r\n  f.p ();  \/\/ this is Foo, nameOf = Foo\r\n\r\n  var Bar = Foo;\r\n  var f2 = new Bar ();  \/\/ Foo constructor\r\n  try { f2.p (); } catch (e) { alert (e); }  \/\/ ENameError\r\n\r\n  var Baz = Foo;\r\n  var f3 = new Baz ();  \/\/ Foo constructor\r\n  f3.p ();  \/\/ this is Baz, nameOf = Baz\r\n}\r\ntest ();<\/code>\r\n<\/pre>\n<p>\u5909\u6570\u306b\u95a2\u6570\u3092\u4ee3\u5165\u3057\u3066\u305d\u306e\u5909\u6570\u540d\u3067 <code>new<\/code> \u3059\u308b\u3068\u3001\u53c2\u7167\u3057\u3066\u3044\u308b\u95a2\u6570\u304c\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3068\u3057\u3066\u547c\u3073\u51fa\u3055\u308c\u307e\u3059\u304c\u3001<code>prototype<\/code> \u3068\u3057\u3066\u4f7f\u308f\u308c\u308b\u306e\u306f\u305d\u306e\u5909\u6570\u540d\u3068\u540c\u540d\u306e\u95a2\u6570\u306e <code>prototype<\/code> \u306b\u306a\u3063\u3066\u3057\u307e\u3044\u307e\u3059\u3002<\/p>\n<p><a href=\"http:\/\/rentan.org\/blog\/2012\/03\/01\/dmonkey-named-function-expression\/\">\u540d\u524d\u4ed8\u304d\u95a2\u6570\u5f0f\u306f\u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7\u306b\u5bfe\u3059\u308b\u95a2\u6570\u5ba3\u8a00\u3068\u3057\u3066\u52d5\u4f5c\u3059\u308b<\/a> \u306e\u672b\u5c3e\u306e\u30a8\u30e9\u30fc\u4f8b\u3082\u3001\u3053\u308c\u3068\u540c\u3058\u3053\u3068\u3060\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>function Foo () { alert ('Foo constructor'); } Foo.prototype.p = function () { alert (\"this is Foo\\nnameOf = \" [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[640],"tags":[1191],"class_list":["post-6037","post","type-post","status-publish","format-standard","hentry","category-irvine","tag-dmonkey"],"_links":{"self":[{"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/posts\/6037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/comments?post=6037"}],"version-history":[{"count":5,"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/posts\/6037\/revisions"}],"predecessor-version":[{"id":6042,"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/posts\/6037\/revisions\/6042"}],"wp:attachment":[{"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/media?parent=6037"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/categories?post=6037"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rentan.org\/blog\/wp-json\/wp\/v2\/tags?post=6037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}