OSDN Git Service

mixメソッドの軽量化
authordhrname <dhrname@users.sourceforge.jp>
Tue, 14 Jan 2014 14:05:42 +0000 (23:05 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Tue, 14 Jan 2014 14:05:42 +0000 (23:05 +0900)
tool/funcproto/base.js

index 3cee86c..39318d1 100644 (file)
@@ -30,22 +30,34 @@ function base(name) {
 \r
 this.__id_ = null;\r
 \r
-base.__gl_ = this; //\83O\83\8d\81[\83o\83\8b\95Ï\90\94\r
+(function(){\r
+  /*mix\83\81\83\\83b\83h\82Å\8eg\82¤NG\83n\83b\83V\83\85\82ð\8dì\90¬*/\r
+  var hash = {},\r
+      proto = Object.prototype; \r
+  for (var i in this) {\r
+    hash[i] = true;\r
+  }\r
+  for (var i in proto) {\r
+    hash[i] = true;\r
+  }\r
+  base.__ng_ = hash;\r
+})();\r
 \r
 base.mix = function(obj) {\r
     if (!arguments[0]) {\r
       throw new Error("No arguments errror");\r
     }\r
     if (typeof obj !== "function") {\r
-      var proto = Object.prototype,\r
-          alias = base;\r
+      var alias = base;\r
       for (var i in obj) {\r
-        /*hasOwnProperty\83\81\83\\83b\83h\82ð\8eg\82í\82È\82¢\82Ì\82Í\81A\83v\83\8d\83g\83^\83C\83v\83`\83F\81[\83\93\82ð\82½\82Ç\82é\82æ\82¤\82É\82·\82é\82½\82ß*/\r
-        if (!proto[i] && !alias.__gl_[i]) {\r
+        /*hasOwnProperty\83\81\83\\83b\83h\82ð\8eg\82í\82È\82¢\82Ì\82Í\81A\83v\83\8d\83g\83^\83C\83v\83`\83F\81[\83\93\82ð\82½\82Ç\82é\82æ\82¤\82É\82·\82é\82½\82ß\r
+         *\82È\82¨\81Aproto\81i\8aî\91b\83I\83u\83W\83F\83N\83g)\82Æalias(\83O\83\8d\81[\83o\83\8b\83I\83u\83W\83F\83N\83g)\82Ì\83v\83\8d\83p\83e\83B\82È\82Ç\82Í\8aO\82µ\82½\95û\82ª\83G\83\89\81[\82ª\82¨\82«\82É\82­\82¢\r
+         */\r
+        if (!alias.__ng_[i]) {\r
           this[i] = obj[i];\r
         }\r
       }\r
-      i = proto = alias = void 0;\r
+      i = alias = void 0;\r
     } else {\r
       obj.call(this);\r
     }\r