{"componentChunkName":"component---gatsby-theme-blog-src-templates-article-js","path":"/blog/articles/avoid-monkey-patch","result":{"data":{"mdx":{"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"updatedAt\": \"2020-07-19T09:22:05Z\",\n  \"title\": \"[Code Refactoring#2] จงหลีกเลี่ยงการใช้ Monkey Patch!\",\n  \"excerpt\": \"Monkey Patch คืออะไร ข้อดีและข้อเสียของการใช้ Monkey Patch มีอะไรบ้าง ทำไมจึงควรหยุดใช้ Monkey Patch\",\n  \"image\": \"./images/avoid-monkey-patch/feature-image.png\",\n  \"includesMath\": false,\n  \"createdAt\": \"2017-02-16T20:15:45Z\"\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component '\" + name + \"' was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Monkey Patch \\u0E40\\u0E1B\\u0E47\\u0E19\\u0E40\\u0E17\\u0E04\\u0E19\\u0E34\\u0E04\\u0E2B\\u0E19\\u0E36\\u0E48\\u0E07\\u0E17\\u0E35\\u0E48\\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E19\\u0E46\\u0E2B\\u0E25\\u0E32\\u0E22\\u0E04\\u0E19\\u0E04\\u0E07\\u0E40\\u0E04\\u0E22\\u0E43\\u0E0A\\u0E49\\u0E2D\\u0E22\\u0E39\\u0E48\\u0E41\\u0E25\\u0E49\\u0E27 \\u0E40\\u0E17\\u0E04\\u0E19\\u0E34\\u0E04\\u0E19\\u0E35\\u0E49\\u0E41\\u0E21\\u0E49\\u0E08\\u0E30\\u0E21\\u0E35\\u0E1B\\u0E23\\u0E30\\u0E42\\u0E22\\u0E0A\\u0E19\\u0E4C\\u0E41\\u0E15\\u0E48\\u0E01\\u0E32\\u0E23\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E08\\u0E23\\u0E34\\u0E07\\u0E1A\\u0E32\\u0E07\\u0E04\\u0E23\\u0E31\\u0E49\\u0E07\\u0E01\\u0E47\\u0E21\\u0E35\\u0E42\\u0E17\\u0E29\\u0E40\\u0E0A\\u0E48\\u0E19\\u0E01\\u0E31\\u0E19\"), mdx(\"h2\", null, \"Monkey Patch \\u0E04\\u0E37\\u0E2D\\u0E2D\\u0E30\\u0E44\\u0E23\"), mdx(\"p\", null, \"\\u0E20\\u0E32\\u0E29\\u0E32\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E2A\\u0E21\\u0E31\\u0E22\\u0E43\\u0E2B\\u0E21\\u0E48\\u0E21\\u0E31\\u0E01\\u0E21\\u0E35\\u0E44\\u0E27\\u0E22\\u0E32\\u0E01\\u0E23\\u0E13\\u0E4C\\u0E17\\u0E35\\u0E48\\u0E40\\u0E2D\\u0E37\\u0E49\\u0E2D\\u0E15\\u0E48\\u0E2D\\u0E01\\u0E32\\u0E23\\u0E2D\\u0E48\\u0E32\\u0E19\\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E17\\u0E33\\u0E04\\u0E27\\u0E32\\u0E21\\u0E40\\u0E02\\u0E49\\u0E32\\u0E43\\u0E08\\u0E44\\u0E14\\u0E49\\u0E21\\u0E32\\u0E01\\u0E02\\u0E36\\u0E49\\u0E19 \\u0E2A\\u0E33\\u0E2B\\u0E23\\u0E31\\u0E1A\\u0E20\\u0E32\\u0E29\\u0E32 Ruby \\u0E17\\u0E35\\u0E48\\u0E21\\u0E2D\\u0E07\\u0E17\\u0E38\\u0E01\\u0E2D\\u0E22\\u0E48\\u0E32\\u0E07\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E2D\\u0E47\\u0E2D\\u0E1A\\u0E40\\u0E08\\u0E47\\u0E01\\u0E15\\u0E4C \\u0E40\\u0E23\\u0E32\\u0E08\\u0E36\\u0E07\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E40\\u0E23\\u0E35\\u0E22\\u0E01\\u0E43\\u0E0A\\u0E49\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E1C\\u0E48\\u0E32\\u0E19\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02\\u0E44\\u0E14\\u0E49\\u0E40\\u0E0A\\u0E48\\u0E19\\u0E01\\u0E31\\u0E19\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-ruby\"\n  }), \"3.times { |i| puts i }\\n\")), mdx(\"p\", null, \"\\u0E40\\u0E2B\\u0E15\\u0E38\\u0E17\\u0E35\\u0E48\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E2D\\u0E47\\u0E2D\\u0E1A\\u0E40\\u0E08\\u0E47\\u0E01\\u0E15\\u0E4C\\u0E17\\u0E35\\u0E48\\u0E21\\u0E35\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E0A\\u0E37\\u0E48\\u0E2D \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"times\"), \" \\u0E40\\u0E23\\u0E32\\u0E08\\u0E36\\u0E07\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E40\\u0E23\\u0E35\\u0E22\\u0E01\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E14\\u0E31\\u0E07\\u0E01\\u0E25\\u0E48\\u0E32\\u0E27\\u0E44\\u0E14\\u0E49\\u0E42\\u0E14\\u0E22\\u0E15\\u0E23\\u0E07 \\u0E23\\u0E39\\u0E1B\\u0E41\\u0E1A\\u0E1A\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E02\\u0E49\\u0E32\\u0E07\\u0E15\\u0E49\\u0E19\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E44\\u0E1B\\u0E2D\\u0E22\\u0E48\\u0E32\\u0E07\\u0E0A\\u0E31\\u0E14\\u0E40\\u0E08\\u0E19 \\u0E19\\u0E31\\u0E48\\u0E19\\u0E04\\u0E37\\u0E2D\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E01\\u0E32\\u0E23\\u0E2D\\u0E2D\\u0E01\\u0E04\\u0E33\\u0E2A\\u0E31\\u0E48\\u0E07\\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E27\\u0E19\\u0E25\\u0E39\\u0E1B 3 \\u0E04\\u0E23\\u0E31\\u0E49\\u0E07\\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E41\\u0E2A\\u0E14\\u0E07\\u0E1C\\u0E25\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"i\"), \" \\u0E19\\u0E31\\u0E48\\u0E19\\u0E40\\u0E2D\\u0E07\"), mdx(\"p\", null, \"\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E14\\u0E31\\u0E07\\u0E01\\u0E25\\u0E48\\u0E32\\u0E27\\u0E19\\u0E2D\\u0E01\\u0E08\\u0E32\\u0E01\\u0E43\\u0E0A\\u0E49\\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E27\\u0E19\\u0E25\\u0E39\\u0E1B\\u0E44\\u0E14\\u0E49\\u0E41\\u0E1A\\u0E1A\\u0E40\\u0E14\\u0E35\\u0E22\\u0E27\\u0E01\\u0E31\\u0E1A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"for\"), \" \\u0E41\\u0E25\\u0E49\\u0E27 \\u0E2A\\u0E34\\u0E48\\u0E07\\u0E17\\u0E35\\u0E48\\u0E42\\u0E14\\u0E14\\u0E40\\u0E14\\u0E48\\u0E19\\u0E01\\u0E27\\u0E48\\u0E32\\u0E04\\u0E37\\u0E2D\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E04\\u0E33\\u0E2A\\u0E31\\u0E48\\u0E07\\u0E17\\u0E35\\u0E48\\u0E2D\\u0E48\\u0E32\\u0E19\\u0E41\\u0E25\\u0E49\\u0E27\\u0E40\\u0E02\\u0E49\\u0E32\\u0E43\\u0E08\\u0E17\\u0E31\\u0E19\\u0E17\\u0E35 \\u0E2B\\u0E32\\u0E01\\u0E40\\u0E23\\u0E32\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E43\\u0E2B\\u0E49 JavaScript \\u0E21\\u0E35\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"times\"), \" \\u0E1A\\u0E19\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02\\u0E1A\\u0E49\\u0E32\\u0E07\\u0E40\\u0E23\\u0E32\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E17\\u0E33\\u0E44\\u0E14\\u0E49\\u0E44\\u0E2B\\u0E21?\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-javascript\"\n  }), \";(3).times((i) => console.log)\\n\")), mdx(\"p\", null, \"\\u0E40\\u0E23\\u0E32\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E17\\u0E33\\u0E44\\u0E14\\u0E49\\u0E04\\u0E23\\u0E31\\u0E1A \\u0E40\\u0E23\\u0E32\\u0E17\\u0E23\\u0E32\\u0E1A\\u0E41\\u0E25\\u0E49\\u0E27\\u0E27\\u0E48\\u0E32\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02\\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\\u0E21\\u0E32\\u0E08\\u0E32\\u0E01 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Number\"), \" \\u0E2B\\u0E32\\u0E01\\u0E40\\u0E23\\u0E32\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E43\\u0E2B\\u0E49\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02\\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\\u0E21\\u0E35\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"times\"), \" \\u0E40\\u0E23\\u0E32\\u0E01\\u0E47\\u0E41\\u0E04\\u0E48\\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E14\\u0E31\\u0E07\\u0E01\\u0E25\\u0E48\\u0E32\\u0E27\\u0E43\\u0E2B\\u0E49\\u0E01\\u0E31\\u0E1A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"prototype\"), \" \\u0E02\\u0E2D\\u0E07 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Number\"), \" \\u0E14\\u0E31\\u0E07\\u0E19\\u0E35\\u0E49\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-javascript\"\n  }), \"Number.prototype.times = function (fn) {\\n  for (let i = 0; i < this; i++) {\\n    fn(i)\\n  }\\n}\\n;(3).times((i) => console.log)\\n// \\u0E1C\\u0E25\\u0E25\\u0E31\\u0E1E\\u0E18\\u0E4C\\u0E40\\u0E1B\\u0E47\\u0E19\\n// 0\\n// 1\\n// 2\\n\")), mdx(\"p\", null, \"\\u0E27\\u0E34\\u0E18\\u0E35\\u0E01\\u0E32\\u0E23\\u0E02\\u0E22\\u0E32\\u0E22\\u0E04\\u0E27\\u0E32\\u0E21\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E02\\u0E2D\\u0E07\\u0E42\\u0E04\\u0E4A\\u0E14\\u0E2D\\u0E37\\u0E48\\u0E19\\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E32\\u0E21\\u0E35\\u0E2D\\u0E22\\u0E39\\u0E48\\u0E41\\u0E25\\u0E49\\u0E27\\u0E40\\u0E0A\\u0E48\\u0E19\\u0E19\\u0E35\\u0E49\\u0E40\\u0E23\\u0E35\\u0E22\\u0E01\\u0E27\\u0E48\\u0E32 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Monkey Patching\"), \" \\u0E19\\u0E31\\u0E48\\u0E19\\u0E40\\u0E2D\\u0E07\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Monkey Patch \\u0E04\\u0E37\\u0E2D\\u0E40\\u0E17\\u0E04\\u0E19\\u0E34\\u0E04\\u0E02\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E2A\\u0E23\\u0E49\\u0E32\\u0E07\\u0E2A\\u0E48\\u0E27\\u0E19\\u0E02\\u0E2D\\u0E07\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E44\\u0E27\\u0E49\\u0E02\\u0E22\\u0E32\\u0E22\\u0E2B\\u0E23\\u0E37\\u0E2D\\u0E40\\u0E1B\\u0E25\\u0E35\\u0E48\\u0E22\\u0E19\\u0E41\\u0E1B\\u0E25\\u0E07\\u0E01\\u0E32\\u0E23\\u0E17\\u0E33\\u0E07\\u0E32\\u0E19\\u0E02\\u0E2D\\u0E07\\u0E42\\u0E04\\u0E49\\u0E14\\u0E2D\\u0E37\\u0E48\\u0E19\\u0E43\\u0E19\\u0E0A\\u0E48\\u0E27\\u0E22\\u0E07Runtime\")), mdx(\"h2\", null, \"Monkey Patch \\u0E04\\u0E37\\u0E2D Bad Practice\"), mdx(\"p\", null, \"Monkey Patch \\u0E40\\u0E1B\\u0E47\\u0E19\\u0E40\\u0E17\\u0E04\\u0E19\\u0E34\\u0E04\\u0E0A\\u0E48\\u0E27\\u0E22\\u0E02\\u0E22\\u0E32\\u0E22\\u0E02\\u0E35\\u0E14\\u0E04\\u0E27\\u0E32\\u0E21\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E02\\u0E2D\\u0E07\\u0E42\\u0E04\\u0E49\\u0E14\\u0E40\\u0E01\\u0E48\\u0E32\\u0E01\\u0E47\\u0E08\\u0E23\\u0E34\\u0E07 \\u0E41\\u0E15\\u0E48\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E44\\u0E21\\u0E48\\u0E25\\u0E37\\u0E21\\u0E04\\u0E23\\u0E31\\u0E1A\\u0E27\\u0E48\\u0E32\\u0E40\\u0E23\\u0E32\\u0E01\\u0E33\\u0E25\\u0E31\\u0E07\\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21\\u0E2B\\u0E23\\u0E37\\u0E2D\\u0E41\\u0E01\\u0E49\\u0E44\\u0E02\\u0E04\\u0E27\\u0E32\\u0E21\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E19\\u0E31\\u0E49\\u0E19\\u0E1A\\u0E19\\u0E0A\\u0E19\\u0E34\\u0E14\\u0E02\\u0E49\\u0E2D\\u0E21\\u0E39\\u0E25\\u0E2B\\u0E25\\u0E31\\u0E01\\u0E43\\u0E19\\u0E20\\u0E32\\u0E29\\u0E32\\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\"), mdx(\"p\", null, \"\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E02\\u0E49\\u0E32\\u0E07\\u0E15\\u0E49\\u0E19\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E01\\u0E32\\u0E23\\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"times\"), \" \\u0E43\\u0E2B\\u0E49\\u0E01\\u0E31\\u0E1A\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02 \\u0E04\\u0E27\\u0E32\\u0E21\\u0E2B\\u0E21\\u0E32\\u0E22\\u0E04\\u0E37\\u0E2D\\u0E17\\u0E38\\u0E01\\u0E04\\u0E23\\u0E31\\u0E49\\u0E07\\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E32\\u0E40\\u0E23\\u0E35\\u0E22\\u0E01\\u0E43\\u0E0A\\u0E49\\u0E15\\u0E31\\u0E27\\u0E40\\u0E25\\u0E02 \\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E32\\u0E19\\u0E34\\u0E22\\u0E32\\u0E21\\u0E02\\u0E36\\u0E49\\u0E19\\u0E19\\u0E35\\u0E49\\u0E01\\u0E47\\u0E08\\u0E30\\u0E15\\u0E32\\u0E21\\u0E44\\u0E1B\\u0E2B\\u0E25\\u0E2D\\u0E01\\u0E2B\\u0E25\\u0E2D\\u0E19\\u0E17\\u0E38\\u0E01\\u0E17\\u0E35\\u0E48 \\u0E01\\u0E23\\u0E13\\u0E35\\u0E19\\u0E35\\u0E49\\u0E2D\\u0E32\\u0E08\\u0E22\\u0E31\\u0E07\\u0E44\\u0E21\\u0E48\\u0E40\\u0E25\\u0E27\\u0E23\\u0E49\\u0E32\\u0E22\\u0E40\\u0E17\\u0E48\\u0E32\\u0E01\\u0E32\\u0E23\\u0E41\\u0E01\\u0E49\\u0E44\\u0E02\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E17\\u0E35\\u0E48\\u0E21\\u0E35\\u0E2D\\u0E22\\u0E39\\u0E48\\u0E40\\u0E14\\u0E34\\u0E21\"), mdx(\"p\", null, \"\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E17\\u0E35\\u0E48\\u0E17\\u0E23\\u0E32\\u0E1A\\u0E01\\u0E31\\u0E19\\u0E14\\u0E35\\u0E27\\u0E48\\u0E32\\u0E01\\u0E23\\u0E13\\u0E35\\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E32\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E23\\u0E27\\u0E21\\u0E2D\\u0E32\\u0E23\\u0E4C\\u0E40\\u0E23\\u0E22\\u0E4C\\u0E43\\u0E2B\\u0E49\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E02\\u0E49\\u0E2D\\u0E04\\u0E27\\u0E32\\u0E21 \\u0E40\\u0E23\\u0E32\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E17\\u0E33\\u0E44\\u0E14\\u0E49\\u0E1C\\u0E48\\u0E32\\u0E19\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"join\"), \" \\u0E02\\u0E2D\\u0E07\\u0E2D\\u0E32\\u0E23\\u0E4C\\u0E40\\u0E23\\u0E22\\u0E4C \\u0E2B\\u0E32\\u0E01\\u0E40\\u0E23\\u0E32\\u0E44\\u0E21\\u0E48\\u0E23\\u0E30\\u0E1A\\u0E38\\u0E2D\\u0E32\\u0E23\\u0E4C\\u0E01\\u0E34\\u0E27\\u0E40\\u0E21\\u0E19\\u0E15\\u0E4C\\u0E43\\u0E14\\u0E46 \\u0E08\\u0E30\\u0E16\\u0E37\\u0E2D\\u0E27\\u0E48\\u0E32\\u0E01\\u0E32\\u0E23\\u0E23\\u0E27\\u0E21\\u0E19\\u0E31\\u0E49\\u0E19\\u0E44\\u0E21\\u0E48\\u0E21\\u0E35\\u0E15\\u0E31\\u0E27\\u0E04\\u0E31\\u0E48\\u0E19\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-javascript\"\n  }), \";[1, 2, 3].join() // 123\\n\")), mdx(\"p\", null, \"\\u0E2B\\u0E32\\u0E01\\u0E40\\u0E23\\u0E32\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E40\\u0E1B\\u0E25\\u0E35\\u0E48\\u0E22\\u0E19\\u0E1E\\u0E24\\u0E15\\u0E34\\u0E01\\u0E23\\u0E23\\u0E21\\u0E40\\u0E2A\\u0E35\\u0E22\\u0E43\\u0E2B\\u0E21\\u0E48 \\u0E42\\u0E14\\u0E22\\u0E01\\u0E33\\u0E2B\\u0E19\\u0E14\\u0E43\\u0E2B\\u0E49\\u0E04\\u0E48\\u0E32\\u0E40\\u0E23\\u0E34\\u0E48\\u0E21\\u0E15\\u0E49\\u0E19\\u0E02\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"join\"), \" \\u0E04\\u0E37\\u0E2D\\u0E01\\u0E32\\u0E23\\u0E23\\u0E27\\u0E21\\u0E41\\u0E15\\u0E48\\u0E25\\u0E30\\u0E2D\\u0E35\\u0E25\\u0E35\\u0E40\\u0E21\\u0E19\\u0E15\\u0E4C\\u0E43\\u0E19\\u0E2D\\u0E32\\u0E23\\u0E4C\\u0E40\\u0E23\\u0E22\\u0E4C\\u0E40\\u0E02\\u0E49\\u0E32\\u0E14\\u0E49\\u0E27\\u0E22\\u0E01\\u0E31\\u0E19\\u0E42\\u0E14\\u0E22\\u0E43\\u0E0A\\u0E49\\u0E15\\u0E31\\u0E27\\u0E04\\u0E31\\u0E48\\u0E19\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E40\\u0E04\\u0E23\\u0E37\\u0E48\\u0E2D\\u0E07\\u0E2B\\u0E21\\u0E32\\u0E22 - \\u0E40\\u0E23\\u0E32\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E40\\u0E02\\u0E35\\u0E22\\u0E19\\u0E17\\u0E31\\u0E1A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"join\"), \" \\u0E15\\u0E31\\u0E27\\u0E40\\u0E01\\u0E48\\u0E32\\u0E44\\u0E14\\u0E49\\u0E14\\u0E31\\u0E07\\u0E19\\u0E35\\u0E49\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-javascript\"\n  }), \"Array.prototype.join = function (separator = '-') {\\n  return this.reduce((result, item) => result + separator + item)\\n}[(1, 2, 3)].join() // 1-2-3\\n\")), mdx(\"p\", null, \"\\u0E19\\u0E35\\u0E48\\u0E04\\u0E37\\u0E2D\\u0E1D\\u0E31\\u0E19\\u0E23\\u0E49\\u0E32\\u0E22\\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\\u0E40\\u0E25\\u0E22\\u0E2B\\u0E25\\u0E30 \\u0E2D\\u0E22\\u0E48\\u0E32\\u0E25\\u0E37\\u0E21\\u0E19\\u0E30\\u0E04\\u0E23\\u0E31\\u0E1A\\u0E27\\u0E48\\u0E32\\u0E17\\u0E38\\u0E01\\u0E17\\u0E35\\u0E48\\u0E43\\u0E19\\u0E42\\u0E1B\\u0E23\\u0E40\\u0E08\\u0E04\\u0E40\\u0E23\\u0E32\\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E32\\u0E43\\u0E0A\\u0E49 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"join\"), \" \\u0E01\\u0E31\\u0E1A\\u0E2D\\u0E32\\u0E23\\u0E4C\\u0E40\\u0E23\\u0E22\\u0E4C \\u0E17\\u0E38\\u0E01\\u0E2A\\u0E48\\u0E27\\u0E19\\u0E08\\u0E30\\u0E44\\u0E14\\u0E49\\u0E23\\u0E31\\u0E1A\\u0E1C\\u0E25\\u0E01\\u0E23\\u0E30\\u0E17\\u0E1A\\u0E08\\u0E32\\u0E01\\u0E01\\u0E32\\u0E23\\u0E40\\u0E1B\\u0E25\\u0E35\\u0E48\\u0E22\\u0E19\\u0E41\\u0E1B\\u0E25\\u0E07\\u0E19\\u0E35\\u0E49\\u0E17\\u0E31\\u0E49\\u0E07\\u0E2A\\u0E34\\u0E49\\u0E19\"), mdx(\"p\", null, \"\\u0E19\\u0E2D\\u0E01\\u0E08\\u0E32\\u0E01\\u0E19\\u0E35\\u0E49\\u0E2B\\u0E32\\u0E01\\u0E43\\u0E19\\u0E17\\u0E35\\u0E21\\u0E40\\u0E23\\u0E32\\u0E15\\u0E48\\u0E32\\u0E07\\u0E17\\u0E33 Monkey Patch \\u0E42\\u0E14\\u0E22\\u0E01\\u0E32\\u0E23\\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E0A\\u0E37\\u0E48\\u0E2D\\u0E40\\u0E14\\u0E35\\u0E22\\u0E27\\u0E01\\u0E31\\u0E19\\u0E44\\u0E1B\\u0E1A\\u0E19\\u0E2D\\u0E47\\u0E2D\\u0E1A\\u0E40\\u0E08\\u0E47\\u0E01\\u0E15\\u0E4C\\u0E0A\\u0E19\\u0E34\\u0E14\\u0E40\\u0E14\\u0E35\\u0E22\\u0E27\\u0E01\\u0E31\\u0E19 \\u0E41\\u0E25\\u0E49\\u0E27\\u0E41\\u0E1A\\u0E1A\\u0E19\\u0E35\\u0E49\\u0E40\\u0E23\\u0E32\\u0E08\\u0E30\\u0E17\\u0E23\\u0E32\\u0E1A\\u0E44\\u0E14\\u0E49\\u0E2D\\u0E22\\u0E48\\u0E32\\u0E07\\u0E44\\u0E23\\u0E27\\u0E48\\u0E32\\u0E42\\u0E04\\u0E49\\u0E14\\u0E02\\u0E2D\\u0E07\\u0E43\\u0E04\\u0E23\\u0E01\\u0E31\\u0E19\\u0E41\\u0E19\\u0E48\\u0E17\\u0E35\\u0E48\\u0E08\\u0E30\\u0E44\\u0E14\\u0E49\\u0E23\\u0E31\\u0E1A\\u0E01\\u0E32\\u0E23\\u0E17\\u0E33\\u0E07\\u0E32\\u0E19?\"), mdx(\"p\", null, \"\\u0E17\\u0E31\\u0E49\\u0E07\\u0E2B\\u0E21\\u0E14\\u0E17\\u0E31\\u0E49\\u0E07\\u0E21\\u0E27\\u0E25\\u0E04\\u0E37\\u0E2D\\u0E01\\u0E32\\u0E23\\u0E4C\\u0E14\\u0E01\\u0E31\\u0E1A\\u0E14\\u0E31\\u0E01\\u0E17\\u0E35\\u0E48 Monkey Patch \\u0E44\\u0E14\\u0E49\\u0E40\\u0E1B\\u0E34\\u0E14\\u0E2B\\u0E07\\u0E32\\u0E22\\u0E40\\u0E2D\\u0E32\\u0E44\\u0E27\\u0E49 \\u0E23\\u0E2D\\u0E40\\u0E2B\\u0E22\\u0E37\\u0E48\\u0E2D\\u0E41\\u0E1A\\u0E1A\\u0E1E\\u0E27\\u0E01\\u0E40\\u0E23\\u0E32\\u0E15\\u0E01\\u0E25\\u0E07\\u0E44\\u0E1B\\u0E43\\u0E19\\u0E2B\\u0E25\\u0E38\\u0E21\\u0E1E\\u0E25\\u0E32\\u0E07 \\u0E40\\u0E21\\u0E37\\u0E48\\u0E2D\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E40\\u0E0A\\u0E48\\u0E19\\u0E19\\u0E35\\u0E49\\u0E40\\u0E23\\u0E32\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E23\\u0E30\\u0E27\\u0E31\\u0E07\\u0E01\\u0E31\\u0E19\\u0E0B\\u0E31\\u0E01\\u0E2B\\u0E19\\u0E48\\u0E2D\\u0E22\\u0E41\\u0E25\\u0E49\\u0E27\\u0E40\\u0E21\\u0E37\\u0E48\\u0E2D\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E43\\u0E0A\\u0E49 Monkey Patch\"), mdx(\"h2\", null, \"\\u0E17\\u0E32\\u0E07\\u0E23\\u0E2D\\u0E14\\u0E14\\u0E49\\u0E27\\u0E22 Refinement\"), mdx(\"p\", null, \"\\u0E1B\\u0E31\\u0E0D\\u0E2B\\u0E32\\u0E2B\\u0E25\\u0E31\\u0E01\\u0E02\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E43\\u0E0A\\u0E49 Monkey Patch \\u0E19\\u0E31\\u0E48\\u0E19\\u0E04\\u0E37\\u0E2D\\u0E2A\\u0E48\\u0E27\\u0E19\\u0E2D\\u0E37\\u0E48\\u0E19\\u0E02\\u0E2D\\u0E07\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E35\\u0E22\\u0E01\\u0E43\\u0E0A\\u0E49\\u0E42\\u0E04\\u0E49\\u0E14\\u0E19\\u0E35\\u0E49\\u0E08\\u0E30\\u0E44\\u0E14\\u0E49\\u0E23\\u0E31\\u0E1A\\u0E1C\\u0E25\\u0E01\\u0E23\\u0E30\\u0E17\\u0E1A\\u0E14\\u0E49\\u0E27\\u0E22\\u0E14\\u0E31\\u0E48\\u0E07\\u0E27\\u0E34\\u0E0D\\u0E0D\\u0E32\\u0E13\\u0E15\\u0E32\\u0E21\\u0E15\\u0E34\\u0E14 \\u0E40\\u0E21\\u0E37\\u0E48\\u0E2D\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E40\\u0E0A\\u0E48\\u0E19\\u0E19\\u0E35\\u0E49\\u0E17\\u0E32\\u0E07\\u0E23\\u0E2D\\u0E14\\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\\u0E08\\u0E36\\u0E07\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E01\\u0E32\\u0E23\\u0E08\\u0E33\\u0E01\\u0E31\\u0E14\\u0E1E\\u0E37\\u0E49\\u0E19\\u0E17\\u0E35\\u0E48 \\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E44\\u0E21\\u0E48\\u0E43\\u0E2B\\u0E49\\u0E1C\\u0E25\\u0E01\\u0E23\\u0E30\\u0E17\\u0E1A\\u0E08\\u0E32\\u0E01\\u0E01\\u0E32\\u0E23\\u0E43\\u0E0A\\u0E49 Monkey Patch \\u0E01\\u0E23\\u0E30\\u0E08\\u0E32\\u0E22\\u0E44\\u0E1B\\u0E2A\\u0E39\\u0E48\\u0E27\\u0E07\\u0E01\\u0E27\\u0E49\\u0E32\\u0E07\"), mdx(\"p\", null, \"\\u0E2A\\u0E33\\u0E2B\\u0E23\\u0E31\\u0E1A\\u0E20\\u0E32\\u0E29\\u0E32 Ruby \\u0E21\\u0E35\\u0E1F\\u0E35\\u0E40\\u0E08\\u0E2D\\u0E23\\u0E4C\\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E35\\u0E22\\u0E01\\u0E27\\u0E48\\u0E32 \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Refinement\"), \" \\u0E14\\u0E49\\u0E27\\u0E22\\u0E04\\u0E27\\u0E32\\u0E21\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E19\\u0E35\\u0E49\\u0E17\\u0E33\\u0E43\\u0E2B\\u0E49\\u0E40\\u0E23\\u0E32\\u0E08\\u0E33\\u0E01\\u0E31\\u0E14\\u0E02\\u0E2D\\u0E1A\\u0E40\\u0E02\\u0E15\\u0E01\\u0E32\\u0E23\\u0E43\\u0E0A\\u0E49 Monkey Patch \\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\\u0E44\\u0E14\\u0E49 \\u0E2B\\u0E32\\u0E01\\u0E40\\u0E23\\u0E32\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E01\\u0E32\\u0E23\\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E0A\\u0E37\\u0E48\\u0E2D \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"start_with\"), \" \\u0E43\\u0E2B\\u0E49\\u0E01\\u0E31\\u0E1A \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"String\"), \" \\u0E40\\u0E23\\u0E32\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E17\\u0E33\\u0E44\\u0E14\\u0E49\\u0E14\\u0E31\\u0E07\\u0E19\\u0E35\\u0E49\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-ruby\"\n  }), \"class String\\n  # \\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14 start_with \\u0E44\\u0E1B\\u0E22\\u0E31\\u0E07\\u0E04\\u0E25\\u0E32\\u0E2A String\\n  def start_with(prefix)\\n    prefix + self\\n  end\\nend\\n\\nputs 'World'.start_with('Hello ') // Hello World\\n\")), mdx(\"p\", null, \"\\u0E41\\u0E19\\u0E48\\u0E19\\u0E2D\\u0E19\\u0E27\\u0E48\\u0E32\\u0E01\\u0E32\\u0E23\\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E40\\u0E02\\u0E49\\u0E32\\u0E44\\u0E1B\\u0E42\\u0E14\\u0E22\\u0E15\\u0E23\\u0E07\\u0E43\\u0E19 String \\u0E22\\u0E48\\u0E2D\\u0E21\\u0E01\\u0E23\\u0E30\\u0E17\\u0E1A\\u0E27\\u0E07\\u0E01\\u0E27\\u0E49\\u0E32\\u0E07 \\u0E17\\u0E38\\u0E01\\u0E2A\\u0E48\\u0E27\\u0E19\\u0E02\\u0E2D\\u0E07\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E17\\u0E35\\u0E48\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E04\\u0E25\\u0E32\\u0E2A String \\u0E22\\u0E48\\u0E2D\\u0E21\\u0E21\\u0E2D\\u0E07\\u0E40\\u0E2B\\u0E47\\u0E19\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E14\\u0E31\\u0E07\\u0E01\\u0E25\\u0E48\\u0E32\\u0E27\\u0E2B\\u0E21\\u0E14 \\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E01\\u0E32\\u0E23\\u0E08\\u0E33\\u0E01\\u0E31\\u0E14\\u0E1E\\u0E37\\u0E49\\u0E19\\u0E17\\u0E35\\u0E48\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E40\\u0E23\\u0E32\\u0E08\\u0E36\\u0E07\\u0E15\\u0E49\\u0E2D\\u0E07\\u0E2D\\u0E32\\u0E28\\u0E31\\u0E22 Refinement\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-ruby\"\n  }), \"module StringRefinement\\n  refine String do\\n    def start_with(prefix)\\n      prefix + self\\n    end\\n  end\\nend\\n\\nclass MyApp\\n  # Monkey Patch \\u0E17\\u0E35\\u0E48\\u0E40\\u0E23\\u0E32\\u0E17\\u0E33\\u0E01\\u0E31\\u0E1A String\\n  # \\u0E08\\u0E30\\u0E21\\u0E2D\\u0E07\\u0E40\\u0E2B\\u0E47\\u0E19\\u0E44\\u0E14\\u0E49\\u0E41\\u0E04\\u0E48\\u0E20\\u0E32\\u0E22\\u0E43\\u0E19\\u0E04\\u0E25\\u0E32\\u0E2A\\u0E19\\u0E35\\u0E49\\n  # \\u0E1E\\u0E49\\u0E19\\u0E02\\u0E2D\\u0E1A\\u0E40\\u0E02\\u0E15\\u0E04\\u0E25\\u0E32\\u0E2A\\u0E19\\u0E35\\u0E49\\u0E41\\u0E25\\u0E49\\u0E27 \\u0E08\\u0E30\\u0E44\\u0E21\\u0E48\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E44\\u0E14\\u0E49\\n  using StringRefinement\\n\\n  def say_hello\\n    puts 'World'.start_with('Hello ')\\n  end\\nend\\n\\napp = MyApp.new\\napp.say_hello # Hello World\\n\\n# \\u0E1E\\u0E49\\u0E19\\u0E02\\u0E2D\\u0E1A\\u0E40\\u0E02\\u0E15\\u0E04\\u0E25\\u0E32\\u0E2A \\u0E44\\u0E21\\u0E48\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E14\\u0E31\\u0E07\\u0E01\\u0E25\\u0E48\\u0E32\\u0E27\\u0E44\\u0E14\\u0E49\\n'World'.start_with('Hello ') # undefined method `start_with' for \\\"World\\\":String\\n\")), mdx(\"h2\", null, \"\\u0E41\\u0E25\\u0E49\\u0E27\\u0E16\\u0E49\\u0E32\\u0E15\\u0E31\\u0E27\\u0E20\\u0E32\\u0E29\\u0E32\\u0E08\\u0E33\\u0E01\\u0E31\\u0E14\\u0E02\\u0E2D\\u0E1A\\u0E40\\u0E02\\u0E15\\u0E01\\u0E32\\u0E23\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E44\\u0E21\\u0E48\\u0E44\\u0E14\\u0E49\\u0E25\\u0E30?\"), mdx(\"p\", null, \"\\u0E2A\\u0E34\\u0E48\\u0E07\\u0E17\\u0E35\\u0E48\\u0E19\\u0E33\\u0E40\\u0E2A\\u0E19\\u0E2D\\u0E44\\u0E1B\\u0E43\\u0E19\\u0E2B\\u0E31\\u0E27\\u0E02\\u0E49\\u0E2D\\u0E01\\u0E48\\u0E2D\\u0E19\\u0E2B\\u0E19\\u0E49\\u0E32\\u0E19\\u0E35\\u0E49\\u0E21\\u0E35\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E43\\u0E19\\u0E20\\u0E32\\u0E29\\u0E32 Ruby \\u0E2A\\u0E33\\u0E2B\\u0E23\\u0E31\\u0E1A\\u0E20\\u0E32\\u0E29\\u0E32\\u0E2D\\u0E37\\u0E48\\u0E19\\u0E40\\u0E0A\\u0E48\\u0E19 JavaScript \\u0E40\\u0E23\\u0E32\\u0E44\\u0E21\\u0E48\\u0E21\\u0E35\\u0E1F\\u0E35\\u0E40\\u0E08\\u0E2D\\u0E23\\u0E4C\\u0E19\\u0E35\\u0E49 \\u0E40\\u0E21\\u0E37\\u0E48\\u0E2D\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E40\\u0E0A\\u0E48\\u0E19\\u0E19\\u0E35\\u0E49\\u0E40\\u0E23\\u0E32\\u0E04\\u0E27\\u0E23\\u0E08\\u0E33\\u0E01\\u0E31\\u0E14\\u0E02\\u0E2D\\u0E1A\\u0E40\\u0E02\\u0E15\\u0E2D\\u0E22\\u0E48\\u0E32\\u0E07\\u0E44\\u0E23\\u0E14\\u0E35?\"), mdx(\"p\", null, \"\\u0E04\\u0E33\\u0E15\\u0E2D\\u0E1A\\u0E02\\u0E2D\\u0E07\\u0E1B\\u0E31\\u0E0D\\u0E2B\\u0E32\\u0E19\\u0E35\\u0E49\\u0E07\\u0E48\\u0E32\\u0E22\\u0E21\\u0E32\\u0E01\\u0E04\\u0E23\\u0E31\\u0E1A \\u0E43\\u0E2B\\u0E49\\u0E19\\u0E36\\u0E01\\u0E16\\u0E36\\u0E07\\u0E44\\u0E25\\u0E1A\\u0E23\\u0E32\\u0E23\\u0E35\\u0E48\\u0E2D\\u0E22\\u0E48\\u0E32\\u0E07 Lodash\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-javascript\"\n  }), \"_.head([1, 2, 3]) // 1\\n\")), mdx(\"p\", null, \"\\u0E01\\u0E23\\u0E13\\u0E35\\u0E02\\u0E2D\\u0E07 Lodash \\u0E19\\u0E31\\u0E49\\u0E19 \\u0E40\\u0E23\\u0E32\\u0E40\\u0E1E\\u0E34\\u0E48\\u0E21 Utility Functions \\u0E15\\u0E48\\u0E32\\u0E07\\u0E46\\u0E40\\u0E02\\u0E49\\u0E32\\u0E44\\u0E1B\\u0E20\\u0E32\\u0E22\\u0E43\\u0E15\\u0E49 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"_\"), \" \\u0E41\\u0E19\\u0E48\\u0E19\\u0E2D\\u0E19\\u0E04\\u0E23\\u0E31\\u0E1A\\u0E2B\\u0E32\\u0E01\\u0E40\\u0E23\\u0E32\\u0E44\\u0E21\\u0E48\\u0E40\\u0E23\\u0E34\\u0E48\\u0E21\\u0E15\\u0E49\\u0E19\\u0E14\\u0E49\\u0E27\\u0E22 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"_\"), \" \\u0E41\\u0E25\\u0E49\\u0E27 \\u0E40\\u0E23\\u0E32\\u0E22\\u0E48\\u0E2D\\u0E21\\u0E44\\u0E21\\u0E48\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E40\\u0E23\\u0E35\\u0E22\\u0E01\\u0E43\\u0E0A\\u0E49\\u0E07\\u0E32\\u0E19\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E15\\u0E48\\u0E32\\u0E07\\u0E46\\u0E40\\u0E2B\\u0E25\\u0E48\\u0E32\\u0E19\\u0E31\\u0E49\\u0E19\\u0E44\\u0E14\\u0E49 \\u0E19\\u0E35\\u0E48\\u0E04\\u0E37\\u0E2D\\u0E27\\u0E34\\u0E18\\u0E35\\u0E01\\u0E32\\u0E23\\u0E08\\u0E33\\u0E01\\u0E31\\u0E14\\u0E02\\u0E2D\\u0E1A\\u0E40\\u0E02\\u0E15\\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\\u0E43\\u0E2B\\u0E49\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E15\\u0E48\\u0E32\\u0E07\\u0E46\\u0E2D\\u0E22\\u0E39\\u0E48\\u0E20\\u0E32\\u0E22\\u0E43\\u0E15\\u0E49\\u0E2D\\u0E47\\u0E2D\\u0E1A\\u0E40\\u0E08\\u0E47\\u0E01\\u0E15\\u0E4C\\u0E2B\\u0E19\\u0E36\\u0E48\\u0E07\\u0E46\\u0E40\\u0E17\\u0E48\\u0E32\\u0E19\\u0E31\\u0E49\\u0E19\\u0E19\\u0E31\\u0E48\\u0E19\\u0E40\\u0E2D\\u0E07\"), mdx(\"p\", null, \"\\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E17\\u0E33\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"times\"), \" \\u0E02\\u0E2D\\u0E07\\u0E40\\u0E23\\u0E32\\u0E43\\u0E2B\\u0E49\\u0E14\\u0E35\\u0E02\\u0E36\\u0E49\\u0E19 \\u0E40\\u0E23\\u0E32\\u0E08\\u0E36\\u0E07\\u0E22\\u0E49\\u0E32\\u0E22\\u0E08\\u0E32\\u0E01\\u0E01\\u0E32\\u0E23\\u0E17\\u0E33 Monkey Patch \\u0E42\\u0E14\\u0E22\\u0E15\\u0E23\\u0E07\\u0E44\\u0E1B\\u0E17\\u0E35\\u0E48 Number \\u0E43\\u0E2B\\u0E49\\u0E40\\u0E1B\\u0E47\\u0E19\\u0E40\\u0E1E\\u0E35\\u0E22\\u0E07\\u0E40\\u0E21\\u0E18\\u0E2D\\u0E14\\u0E2B\\u0E19\\u0E36\\u0E48\\u0E07\\u0E02\\u0E2D\\u0E07\\u0E2D\\u0E47\\u0E2D\\u0E1A\\u0E40\\u0E08\\u0E47\\u0E01\\u0E15\\u0E4C \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"_\"), \" \\u0E40\\u0E17\\u0E48\\u0E32\\u0E19\\u0E31\\u0E49\\u0E19 \\u0E14\\u0E31\\u0E07\\u0E19\\u0E35\\u0E49\"), mdx(\"pre\", null, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-javascript\"\n  }), \"const _ = {\\n  times(n, fn) {\\n    for (let i = 0; i < n; i++) {\\n      fn(i)\\n    }\\n  },\\n}\\n\\n_.times(3, console.log)\\n\")), mdx(\"h2\", null, \"\\u0E2A\\u0E23\\u0E38\\u0E1B\"), mdx(\"p\", null, \"Monkey Patch \\u0E40\\u0E2D\\u0E37\\u0E49\\u0E2D\\u0E1B\\u0E23\\u0E30\\u0E42\\u0E22\\u0E0A\\u0E19\\u0E4C\\u0E15\\u0E48\\u0E2D\\u0E01\\u0E32\\u0E23\\u0E40\\u0E02\\u0E35\\u0E22\\u0E19\\u0E42\\u0E1B\\u0E23\\u0E41\\u0E01\\u0E23\\u0E21\\u0E21\\u0E32\\u0E01\\u0E21\\u0E32\\u0E22 \\u0E41\\u0E15\\u0E48\\u0E19\\u0E31\\u0E48\\u0E19\\u0E2B\\u0E25\\u0E30\\u0E04\\u0E23\\u0E31\\u0E1A\\u0E04\\u0E27\\u0E32\\u0E21\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16\\u0E17\\u0E35\\u0E48\\u0E22\\u0E34\\u0E48\\u0E07\\u0E43\\u0E2B\\u0E0D\\u0E48\\u0E22\\u0E48\\u0E2D\\u0E21\\u0E21\\u0E32\\u0E1E\\u0E23\\u0E49\\u0E2D\\u0E21\\u0E01\\u0E31\\u0E1A\\u0E04\\u0E27\\u0E32\\u0E21\\u0E23\\u0E31\\u0E1A\\u0E1C\\u0E34\\u0E14\\u0E0A\\u0E2D\\u0E1A\\u0E17\\u0E35\\u0E48\\u0E43\\u0E2B\\u0E0D\\u0E48\\u0E22\\u0E34\\u0E48\\u0E07 \\u0E40\\u0E1E\\u0E37\\u0E48\\u0E2D\\u0E19\\u0E46\\u0E08\\u0E36\\u0E07\\u0E04\\u0E27\\u0E23\\u0E43\\u0E0A\\u0E49 Monkey Patch \\u0E14\\u0E49\\u0E27\\u0E22\\u0E04\\u0E27\\u0E32\\u0E21\\u0E15\\u0E23\\u0E30\\u0E2B\\u0E19\\u0E31\\u0E01\\u0E23\\u0E39\\u0E49\\u0E16\\u0E36\\u0E07\\u0E1E\\u0E34\\u0E29\\u0E20\\u0E31\\u0E22\\u0E17\\u0E35\\u0E48\\u0E41\\u0E2D\\u0E1A\\u0E41\\u0E1D\\u0E07\\u0E43\\u0E19\\u0E02\\u0E19\\u0E21\\u0E2B\\u0E27\\u0E32\\u0E19\\u0E14\\u0E49\\u0E27\\u0E22\\u0E40\\u0E0A\\u0E48\\u0E19\\u0E01\\u0E31\\u0E19\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#monkey-patch-คืออะไร","title":"Monkey Patch คืออะไร"},{"url":"#monkey-patch-คือ-bad-practice","title":"Monkey Patch คือ Bad Practice"},{"url":"#ทางรอดด้วย-refinement","title":"ทางรอดด้วย Refinement"},{"url":"#แล้วถ้าตัวภาษาจำกัดขอบเขตการใช้งานไม่ได้ละ","title":"แล้วถ้าตัวภาษาจำกัดขอบเขตการใช้งานไม่ได้ละ?"},{"url":"#สรุป","title":"สรุป"}]},"frontmatter":{"title":"[Code Refactoring#2] จงหลีกเลี่ยงการใช้ Monkey Patch!","excerpt":"Monkey Patch คืออะไร ข้อดีและข้อเสียของการใช้ Monkey Patch มีอะไรบ้าง ทำไมจึงควรหยุดใช้ Monkey Patch","createdAt":"16 ก.พ. 2017","createdAtDate":"2017-02-16T20:15:45Z","updatedAtDate":"2020-07-19T09:22:05Z","includesMath":false,"coverImage":{"childImageSharp":{"fixed":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAAsTAAALEwEAmpwYAAACqklEQVQozwGfAmD9ANjN0JynqEhbUC43J21cQ+K7lIBuWZpiR4xRL6KJfK6BaKRoSLSQdYd9Y46LfWpjTE9LN212bYuTkoCHhQCRhXqgn5h3dGJPUj0RIw3Bp3ioj1FKeFm/tJicjYOSkIecoZeTjX+PhHClln2vpJVgY1haXVOmrazQzdEAU1M9kH9klH9daVI2eUxUwm9Z48GTl494hYB6Z2toYl1TjmVeZl9VXWBWeXRqamxxVmhijophYWpngYB0AKOXjpaNfZp8UNBMXP8/g/ctdvVnmqWQcHlrLnl5RZSVg8ulkoOEbYSPea2zo6etoYmVe7y/kpKYl4yHfwBpW1CUdmCpZGbxam/semfthmfnfWPNqGPm1FrwvFfqwmTs0mzxy2nx02rwy2jtz2bt3mXX5XNPVEQhLB0AIDEhPDgcTSgf7FZu9nBv83pr6HJoxqpZ5ttP6bNQ6LlK4rBG5rZJ8MhZ5LxO6rNR7L1FxMlOXF9WVUs7AFRwZ0FFMEZRNYEvROUubOctcLhGZXd0Tm12SIFxQbGhc7bCn6WgeoeOaZWZZIGMXZuWd3xbQ2RuaKadnABvZVowNB0oKBVHVU1+bGSAX0h0b0xNTT9fYV6GW1GtdnCsmJulo5yekGe0qXuXj3d+dl93fXedjYibbFYAUT8mT0ouY3BiqqSTn41fbGEuaG1akZyOhIp6iXhfp3tVnnlUq4tv4Z+EpI1if4JJaW1JcXVfqqyitJ+RAHy8anq2c4q/nnmsgXitb2iefITAg3mwjHuxhXabfYi6e4i6f4Kug4yzeZC7iWmYiHGpfXmxgYO8iZDRggCT23h3uItZk5Zop5N1t41koJpkoJVakptqqJBqq5RZlJ5alZxSi6JUkKJxtYhmo5ZakaBfmZppp4+L03RpxE6go3ZpMQAAAABJRU5ErkJggg==","width":730,"height":415,"src":"/static/e446abef9cded028404cf9a4cdbaed6b/58dba/feature-image.png","srcSet":"/static/e446abef9cded028404cf9a4cdbaed6b/58dba/feature-image.png 1x","srcWebp":"/static/e446abef9cded028404cf9a4cdbaed6b/38d2b/feature-image.webp","srcSetWebp":"/static/e446abef9cded028404cf9a4cdbaed6b/38d2b/feature-image.webp 1x"}}}},"fields":{"slug":"/avoid-monkey-patch"}},"authorImage":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEfklEQVQ4y3WUjVNUVRiH9+9IRVgRSQJJEJgJHdIyHNNSTI1Eym9BYEQQhGjHHJFdFFBJgwEV3UzYYQFRURQGcfnYQUFlRQFt+CgzDAQWli/x6ZyLFGndmd/cc88973Pe93fee1WDg4MMDtqQd5vNxsDAgDJ+9QpGX44JvWTyeinGE+sn1koNDQ0pmnxWTS6QslqtjI+PMzI2RumNUuJiY4iK3E1BYQE3TZU8ePSQMQGVgVOhU6WaCnsl0rrdUE/Ijm184OGB73wPfOa54+PuzkJvbxb7+qLTaRkVGypx/wfs75+AmWqqWOTtibuTEwvc5gkJ0AIvFgkt9PTCz9uHBa6u5BnyFAtkEm8B5eTI8DBtnR34L12C+p1pzHV0xG2OMy6OTjjZqxW5zJrNrOkzmT/XhU8//oiW1hbGRkcV6FTbVH19fcpuhnwDzmoHHGfao542HacZdriq1XjOcsDf043o4C/YH7aJOXZ2OIr33+6LUQ6sv78fqzjIgddSyQnpSXT0Htyc32WOgxoPBztWe80j1N+Xk2EbSAwJ5tb5dKwt1RSdPs4SYUtRSgzdHc0M2IYmoCJTq1UCRYayHXTaJFHqbN53VLPZz4uM0PUUHggjO34X+zauQRvxNaazyQz/2shV/QmuHNhOV0MZVtswkjEBtE6ULA/EaMzH2cGez73dSdm6huyoLVw8Esfl1Hji136Cbts62ivyeP6wls7GGirSE/i9ukgAhxTgZJYKUJZcV2dGPWMaaz/0JmZjAJv9/dB8tZzmkhxairN5cukM7eVG2iqL6bxTRpu5hDPHEunq7hagfvpeQxUPpWRPrVqxnPfsp5MY+hVfLvYRmS2l+WIWHRWFVGUkUvvj99TrU2ktu0CzqZgV/ktpffxYaZfe3t5/gPJhZGSExsb7eLi6kBSxkUJdJObsJAoORRG/ajFn40KEh2mUpMVSb0jnt9sl7A3dxM3KW4yK9nnx4oWS5d8ZygnpZZXJxMHIbTSJUmsyDnJ0awAHA1fyU/h29LERXP8hgYrM72i6lkPR2WPUmmuVb1nGy8QUDyfV09Mjemuce+XFFKUloI8KJj0ikJQtgZzftZXyYxruGk9QZzhKpf4Id6/m0N31VPThoAD2vA2UkjsNiI5/WHeLC9ooju8K4JwmBG3wZ2i/WYUhOZrrpw9hTI2hvjCdDks1HZ2dSmyviFVJ6puSUNvIKI8fNJCzfydZsUHodgQQF7gMTdAy0sLXcS1DQ0NxBpbSM1ReyuVZ1590iwr/E6hAxUur+E+2Nt0n/6SWw5HBRKz2Y/dK8fWEB1Kl11GTm8q9K1m0VBXwS1sbj9o7UclsFPVK9f5L3aLHBkXjPu16zqmkWJLD1nF4+xpyNTspy9pP9c+HMecfp0L4+cBiwWxpmgJ8Qz2vT61PqNJcx6mUAxgOhZAZG0zGng1cPhpDzYUUTHotpaeTaW5+gvm+BZU8WUUSMjkWktA/urq402jhRlU1xtw8UsLXc2pfEJl7gziXsIXrwsfyTA2my0baO55xt+kRfwEJbduHwyLsagAAAABJRU5ErkJggg==","aspectRatio":1,"src":"/static/a13676f620ffec937bb93404086aee88/38758/author.png","srcSet":"/static/a13676f620ffec937bb93404086aee88/38758/author.png 100w","srcWebp":"/static/a13676f620ffec937bb93404086aee88/5b61a/author.webp","srcSetWebp":"/static/a13676f620ffec937bb93404086aee88/5b61a/author.webp 100w","sizes":"(max-width: 100px) 100vw, 100px"}}},"pageContext":{"slug":"/avoid-monkey-patch"}},"staticQueryHashes":["206548925","2876447390","2876447390","304260960","3640134886","372033979","4000121635","4000121635","480822984","752411102"]}