{"id":354,"date":"2026-05-17T06:46:30","date_gmt":"2026-05-16T22:46:30","guid":{"rendered":"https:\/\/junai.ai\/blog\/js-this-22\/"},"modified":"2026-05-17T07:11:51","modified_gmt":"2026-05-16T23:11:51","slug":"js-this-22","status":"publish","type":"post","link":"https:\/\/junai.ai\/blog\/js-this-22\/","title":{"rendered":"this \uc758 \uc815\uccb4 \u2014 4\uac00\uc9c0 \ud638\ucd9c \ubc29\uc2dd (\uace0\uae09 22\ud3b8)"},"content":{"rendered":"\n<!-- WordPress REST API \ubc1c\ud589\uc6a9 HTML (\uc790\ub3d9 \uc0dd\uc131) -->\n<!-- WP-FEATURED-MEDIA-ID: 548 -->\n<div style=\"max-width:800px;margin:0 auto;\">\n<style>\n\/* js-textbook \u2014 PostgreSQL \uad50\uc7ac \ub3d9\uc77c \ud314\ub808\ud2b8 *\/\n:root {\n  --color-primary: #336791;\n  --color-accent: #60a5fa;\n  --color-bg: #fafafa;\n  --color-bg-card: #ffffff;\n  --color-text: #1e293b;\n  --color-text-muted: #64748b;\n  --hero-start: #0f172a;\n  --hero-end: #336791;\n  --font-body: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;\n  --size-body: 17px;\n  --line-height: 1.75;\n}\n* { box-sizing: border-box; }\n.container { max-width: 760px; margin: 0 auto; padding: 0 22px 80px; }\n.hero { background: linear-gradient(135deg, var(--hero-start) 0%, var(--hero-end) 100%); color: #fff; padding: 72px 22px 56px; text-align: center; }\n.hero .badge { display: inline-block; background: rgba(96,165,250,0.18); color: var(--color-accent); padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; letter-spacing: 0.5px; margin-bottom: 18px; }\n.hero h1 { margin: 0 0 18px; font-size: 36px; line-height: 1.3; letter-spacing: -0.3px; }\n.hero p.sub { margin: 0 auto; max-width: 580px; font-size: 17px; color: #bfdbfe; }\n.hero img { width: 100%; max-width: 720px; height: auto; margin: 36px auto 0; display: block; border-radius: 10px; box-shadow: 0 8px 32px rgba(0,0,0,0.3); }\n.meta { display: flex; gap: 14px; justify-content: center; margin-top: 20px; font-size: 13px; color: #93c5fd; flex-wrap: wrap; }\n.meta span::before { content: \"\u00b7\"; margin-right: 14px; color: #1e3a8a; }\n.meta span:first-child::before { content: \"\"; margin: 0; }\narticle { background: var(--color-bg-card); margin-top: -36px; padding: 44px 28px; border-radius: 14px; box-shadow: 0 2px 18px rgba(0,0,0,0.06); }\narticle p { margin: 0 0 18px; }\nh2 { font-size: 28px; line-height: 1.35; letter-spacing: -0.3px; margin: 48px 0 18px; padding-bottom: 10px; border-bottom: 2px solid var(--color-primary); }\nh2:first-of-type { margin-top: 8px; }\nh3 { font-size: 21px; line-height: 1.4; margin: 30px 0 12px; color: var(--color-primary); }\ncode { background: #f1f5f9; color: #0f172a; padding: 2px 6px; border-radius: 4px; font-family: 'SFMono-Regular', Menlo, Consolas, monospace; font-size: 0.92em; }\npre { background: #0f172a; color: #e2e8f0; padding: 18px 20px; border-radius: 10px; overflow-x: auto; font-size: 14.5px; line-height: 1.65; margin: 18px 0; }\npre code { background: transparent; color: inherit; padding: 0; }\nul, ol { margin: 0 0 18px; padding-left: 24px; }\nli { margin-bottom: 8px; }\nstrong { color: #0f172a; }\n.databox { background: #eff6ff; border-left: 4px solid var(--color-primary); padding: 18px 20px; border-radius: 6px; margin: 22px 0; }\n.databox p { margin: 0 0 8px; }\n.databox p:last-child { margin: 0; }\n.databox strong { color: var(--color-primary); }\n.warnbox { background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border-left: 4px solid #d97706; padding: 18px 20px; border-radius: 6px; margin: 22px 0; }\n.warnbox strong { color: #92400e; }\n.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 22px 0; }\ntable { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--color-bg-card); }\nth, td { padding: 11px 12px; text-align: left; border-bottom: 1px solid #e2e8f0; vertical-align: top; }\nth { background: #f1f5f9; font-weight: 700; color: #0f172a; }\ntd:first-child, th:first-child { font-weight: 700; }\n.cta { background: linear-gradient(135deg, #336791 0%, #60a5fa 100%); color: #fff; padding: 30px 24px; border-radius: 12px; margin-top: 44px; text-align: center; }\n.cta h3 { color: #fff; margin: 0 0 10px; }\n.cta p { margin: 0; color: #dbeafe; }\n.series-nav { background: #eff6ff; padding: 18px 22px; border-radius: 10px; margin-top: 24px; font-size: 14.5px; color: var(--color-text-muted); }\n.series-nav strong { color: var(--color-primary); }\n@media (max-width: 480px) {\n  .hero { padding: 52px 18px 44px; }\n  .hero h1 { font-size: 26px; }\n  .hero p.sub { font-size: 15px; }\n  article { padding: 28px 18px; border-radius: 10px; }\n  h2 { font-size: 22px; }\n  h3 { font-size: 18px; }\npre { font-size: 13px; padding: 14px 16px; }\n}\n@media (max-width: 560px) {\n  .tablewrap table, .tablewrap thead, .tablewrap tbody, .tablewrap tr, .tablewrap th, .tablewrap td { display: block; width: auto; }\n  .tablewrap thead { display: none; }\n  .tablewrap tr { margin: 0 0 14px; border: 1px solid #e2e8f0; border-radius: 10px; overflow: hidden; }\n  .tablewrap td { border: none; border-bottom: 1px solid #f1f5f9; padding: 9px 14px; }\n  .tablewrap td:first-child { background: #eff6ff; font-weight: 800; font-size: 15.5px; }\n  .tablewrap td:last-child { border-bottom: none; }\n  .tablewrap td[data-label]::before { content: attr(data-label) \" \u2014 \"; font-weight: 700; color: var(--color-primary); }\n}\n<\/style>\n<header class=\"hero\">\n  <span class=\"badge\">\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uad50\uc7ac \u00b7 22\ud3b8 \/ 26\ud3b8<\/span>\n  <h1>this \uc758 \uc815\uccb4 \u2014 4\uac00\uc9c0 \ud638\ucd9c \ubc29\uc2dd<\/h1>\n  <p class=\"sub\">\ud568\uc218\uac00 \uc5b4\ub5bb\uac8c \ud638\ucd9c\ub418\ub290\ub0d0\uc5d0 \ub530\ub77c this \uac00 4\uac00\uc9c0\ub85c \uacb0\uc815\ub428.<\/p>\n  <div class=\"meta\"><span>\uace0\uae09<\/span><span>\uc77d\ub294 \uc2dc\uac04 7\ubd84<\/span><span>2026-05-17<\/span><\/div>\n  <img decoding=\"async\" src=\"https:\/\/junai.ai\/blog\/wp-content\/uploads\/2026\/05\/hero-193.jpg\" alt=\"\uac19\uc740 \ud568\uc218\uac00 \ud638\ucd9c \ubc29\uc2dd\uc5d0 \ub530\ub77c this \uac00 \ub2ec\ub77c\uc9c0\ub294 4\uac00\uc9c0 \ub3c4\uc2dd\">\n<\/header>\n\n<div class=\"container\">\n<article>\n\n<p>JS \uc758 <code>this<\/code> \ub294 \ucc98\uc74c \ubcf4\uba74 \ub9c8\ubc95 \uac19\uc2b5\ub2c8\ub2e4 \u2014 \uac19\uc740 \ud568\uc218\uac00 \uc5b4\ub514\uc11c \ud638\ucd9c\ub418\ub290\ub0d0\uc5d0 \ub530\ub77c \uac00\ub9ac\ud0a4\ub294 \uac83\uc774 \ubc14\ub01d\ub2c8\ub2e4. \uc0ac\uc2e4 \uaddc\uce59\uc740 \ub2e8 4\uac00\uc9c0. 22\ud3b8\uc740 \uc774 \uaddc\uce59\uacfc \ud654\uc0b4\ud45c \ud568\uc218\uc758 \uc608\uc678, bind\/call\/apply \uc758 \uc815\ud655\ud55c \ucc28\uc774\uae4c\uc9c0.<\/p>\n\n<h2>\ud575\uc2ec \u2014 this \ub294 &#8220;\ud638\ucd9c \ubc29\uc2dd&#8221; \uc73c\ub85c \uacb0\uc815<\/h2>\n\n<div class=\"databox\">\n  <p><strong>\ud55c \uc904.<\/strong> this \ub294 \ud568\uc218\uac00 <strong>&#8220;\uc815\uc758\ub41c \uc704\uce58&#8221;<\/strong> \uac00 \uc544\ub2c8\ub77c <strong>&#8220;\ud638\ucd9c\ub41c \ubc29\uc2dd&#8221;<\/strong> \uc73c\ub85c \uacb0\uc815\ub429\ub2c8\ub2e4. \uac19\uc740 \ud568\uc218\ub77c\ub3c4 \uc5b4\ub5bb\uac8c \ubd80\ub974\ub0d0\uc5d0 \ub530\ub77c 4\uac00\uc9c0 \ubaa8\uc591 \uc911 \ud558\ub098.<\/p>\n<\/div>\n\n<h2>\u2460 \uba54\uc11c\ub4dc \ud638\ucd9c \u2014 obj.fn()<\/h2>\n\n<pre><code>const user = {\n  name: \"\uc900\uc131\",\n  greet() {\n    return `Hi, ${this.name}`;\n  }\n};\n\nuser.greet();   \/\/ \"Hi, \uc900\uc131\" \u2014 this = user<\/code><\/pre>\n\n<p>\uc810(.) \uc55e\uc774 this. \uac00\uc7a5 \uc9c1\uad00\uc801\uc778 \uacbd\uc6b0.<\/p>\n\n<h2>\u2461 \uc77c\ubc18 \ud568\uc218 \ud638\ucd9c \u2014 fn()<\/h2>\n\n<pre><code>function show() {\n  console.log(this);\n}\n\nshow();   \/\/ \ube0c\ub77c\uc6b0\uc800: window, Node: globalThis\n          \/\/ strict mode: undefined<\/code><\/pre>\n\n<div class=\"warnbox\">\n  <p><strong>strict mode \ucc28\uc774.<\/strong> \uc77c\ubc18 \ubaa8\ub4dc\uc5d0\uc11c <code>this<\/code> = \uae00\ub85c\ubc8c \uac1d\uccb4. strict mode \uc5d0\uc11c\ub294 <code>undefined<\/code>. ESM \ud30c\uc77c\uc740 \uc790\ub3d9\uc73c\ub85c strict \u2014 \ubaa8\ub4c8\uc5d0\uc11c\ub294 \uac70\uc758 \ud56d\uc0c1 undefined.<\/p>\n<\/div>\n\n<h2>\u2462 \uc0dd\uc131\uc790 \ud638\ucd9c \u2014 new Fn()<\/h2>\n\n<pre><code>function User(name) {\n  this.name = name;   \/\/ this = \uc0c8\ub85c \uc0dd\uc131\ub420 \uac1d\uccb4\n}\n\nconst u = new User(\"\uc900\uc131\");\nu.name;   \/\/ \"\uc900\uc131\"\n\n\/\/ \ud074\ub798\uc2a4\ub3c4 \ub9c8\ucc2c\uac00\uc9c0\nclass User2 {\n  constructor(name) { this.name = name; }\n}<\/code><\/pre>\n\n<h2>\u2463 \uba85\uc2dc \ud638\ucd9c \u2014 call \u00b7 apply \u00b7 bind<\/h2>\n\n<pre><code>function greet(greeting) {\n  return `${greeting}, ${this.name}`;\n}\n\nconst user = { name: \"\uc900\uc131\" };\n\n\/\/ call \u2014 this + \uc778\uc790\ub4e4 (\ucf64\ub9c8\ub85c)\ngreet.call(user, \"Hi\");      \/\/ \"Hi, \uc900\uc131\"\n\n\/\/ apply \u2014 this + \uc778\uc790 \ubc30\uc5f4\ngreet.apply(user, [\"Hi\"]);   \/\/ \"Hi, \uc900\uc131\"\n\n\/\/ bind \u2014 this \ub97c \uace0\uc815\ud55c \uc0c8 \ud568\uc218 \ubc18\ud658\nconst greetUser = greet.bind(user);\ngreetUser(\"Hi\");             \/\/ \"Hi, \uc900\uc131\"\ngreetUser(\"Hello\");          \/\/ \"Hello, \uc900\uc131\"<\/code><\/pre>\n\n<h2>this \uc783\ub294 \ud568\uc815 \u2014 18\ud3b8 \ub2e4\uc2dc<\/h2>\n\n<pre><code>class Counter {\n  count = 0;\n  increment() {\n    this.count++;\n  }\n}\n\nconst c = new Counter();\nc.increment();     \/\/ OK\n\n\/\/ \uba54\uc11c\ub4dc\ub97c \ubcc0\uc218\uc5d0 \u2192 \uc810(.) \ubd84\ub9ac\nconst fn = c.increment;\nfn();              \/\/ \u274c TypeError \u2014 this \uac00 undefined (strict)\n\n\/\/ \ucf5c\ubc31\uc73c\ub85c \ub118\uae38 \ub54c\nsetTimeout(c.increment, 1000);   \/\/ \u274c this \uc783\uc74c\nbtn.addEventListener(\"click\", c.increment);   \/\/ \u274c\n\n\/\/ \ud574\uacb0\nsetTimeout(c.increment.bind(c), 1000);   \/\/ \u2705 bind\nsetTimeout(() =&gt; c.increment(), 1000);   \/\/ \u2705 \ud654\uc0b4\ud45c wrap\n\n\/\/ \ub610\ub294 \ud074\ub798\uc2a4 \ud544\ub4dc\uc5d0 \ud654\uc0b4\ud45c (this \uace0\uc815)\nclass Counter {\n  count = 0;\n  increment = () =&gt; { this.count++; };\n}<\/code><\/pre>\n\n<h2>\ud654\uc0b4\ud45c \ud568\uc218\uc758 this \u2014 \ub809\uc2dc\uceec<\/h2>\n\n<pre><code>\/\/ \uc77c\ubc18 \ud568\uc218 \u2014 \ud638\ucd9c \ubc29\uc2dd \ub530\ub77c\nconst obj = {\n  name: \"\uc900\uc131\",\n  fn1: function () {\n    return this.name;          \/\/ obj \uc758 \uba54\uc11c\ub4dc \ud638\ucd9c \u2192 this = obj\n  },\n  fn2: () =&gt; {\n    return this.name;          \/\/ \ud654\uc0b4\ud45c \u2014 \uc8fc\ubcc0 \uc2a4\ucf54\ud504\uc758 this (\uc804\uc5ed)\n  }\n};\n\nobj.fn1();   \/\/ \"\uc900\uc131\"\nobj.fn2();   \/\/ undefined \ub610\ub294 \ub2e4\ub978 \uac83\n\n\/\/ \ud654\uc0b4\ud45c\ub294 \uc790\uae30 this \uac00 \uc5c6\uc74c \u2014 \ub9cc\ub4e4\uc5b4\uc9c4 \uacf3\uc758 this \uadf8\ub300\ub85c \uc0ac\uc6a9\nclass App {\n  name = \"\uc900\uc131\";\n  setup() {\n    setTimeout(() =&gt; {\n      console.log(this.name);   \/\/ \u2705 \"\uc900\uc131\" \u2014 setup \uc758 this \uadf8\ub300\ub85c\n    }, 100);\n\n    \/\/ \uc77c\ubc18 \ud568\uc218\uba74?\n    setTimeout(function () {\n      console.log(this.name);   \/\/ \u274c setTimeout \uc774 \ud638\ucd9c\ud558\ub2c8\uae4c this = global\n    }, 100);\n  }\n}<\/code><\/pre>\n\n<div class=\"databox\">\n  <p><strong>\ud654\uc0b4\ud45c\uac00 \ucf5c\ubc31\uc5d0 \uac15\ud55c \uc774\uc720.<\/strong> \uc77c\ubc18 \ud568\uc218\ub294 \ud638\ucd9c \ubc29\uc2dd\uc5d0 \ub530\ub77c this \uac00 \ubc14\ub01c \u2014 \ucf5c\ubc31\uc73c\ub85c \ub118\uae30\uba74 \uc783\uae30 \uc26c\uc6c0. \ud654\uc0b4\ud45c\ub294 \ub9cc\ub4e4\uc5b4\uc9c4 \uacf3\uc758 this \ub97c \uc601\uad6c\ud788 \uace0\uc815. React\u00b7\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec\uc5d0\uc11c \uc790\uc5f0\uc2a4\ub7ec\uc6b4 \ud328\ud134.<\/p>\n<\/div>\n\n<h2>this \uacb0\uc815 \uc6b0\uc120\uc21c\uc704 \u2014 \ud55c \ud45c<\/h2>\n\n<div class=\"tablewrap\">\n<table>\n  <thead>\n    <tr><th>\uc6b0\uc120<\/th><th>\ud638\ucd9c \ubc29\uc2dd<\/th><th>this<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td data-label=\"\">1 (\ucd5c\uace0)<\/td><td data-label=\"\">\ud654\uc0b4\ud45c \ud568\uc218<\/td><td data-label=\"\">\ub809\uc2dc\uceec (\ud638\ucd9c \ubb34\uad00)<\/td><\/tr>\n    <tr><td data-label=\"\">2<\/td><td data-label=\"\">new Fn()<\/td><td data-label=\"\">\uc0c8 \uac1d\uccb4<\/td><\/tr>\n    <tr><td data-label=\"\">3<\/td><td data-label=\"\">fn.call\/apply\/bind(obj)<\/td><td data-label=\"\">obj<\/td><\/tr>\n    <tr><td data-label=\"\">4<\/td><td data-label=\"\">obj.fn()<\/td><td data-label=\"\">obj<\/td><\/tr>\n    <tr><td data-label=\"\">5 (\ucd5c\uc800)<\/td><td data-label=\"\">fn()<\/td><td data-label=\"\">strict: undefined \/ \uc77c\ubc18: \uc804\uc5ed<\/td><\/tr>\n  <\/tbody>\n<\/table>\n<\/div>\n\n<h2>\uc2e4\uc804 \u2014 \uba54\uc11c\ub4dc\ub97c \ucf5c\ubc31\uc73c\ub85c \uc548\uc804\ud558\uac8c<\/h2>\n\n<pre><code>\/\/ React \ud074\ub798\uc2a4 \ucef4\ud3ec\ub10c\ud2b8 \uc2dc\uc808 (\uc5ed\uc0ac)\nclass Btn extends React.Component {\n  \/\/ \uc0dd\uc131\uc790\uc5d0\uc11c bind\n  constructor(props) {\n    super(props);\n    this.handleClick = this.handleClick.bind(this);\n  }\n  handleClick() { ... }\n  render() {\n    return &lt;button onClick={this.handleClick}&gt;Click&lt;\/button&gt;;\n  }\n}\n\n\/\/ \ub610\ub294 \ud654\uc0b4\ud45c \ud544\ub4dc (\ud604\ub300)\nclass Btn extends React.Component {\n  handleClick = () =&gt; { ... };\n  render() {\n    return &lt;button onClick={this.handleClick}&gt;Click&lt;\/button&gt;;\n  }\n}\n\n\/\/ \ub610\ub294 \uc778\ub77c\uc778 \ud654\uc0b4\ud45c\n&lt;button onClick={() =&gt; this.handleClick()}&gt;Click&lt;\/button&gt;\n\n\/\/ \ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\ub294 \ud074\ub798\uc2a4 \uc790\uccb4 \uc548 \uc368\uc11c \uc774 \ubb38\uc81c \uc5c6\uc74c<\/code><\/pre>\n\n<h2>\uc804\uc5ed \uac1d\uccb4 \u2014 globalThis<\/h2>\n\n<pre><code>\/\/ \ud658\uacbd\ub9c8\ub2e4 \uc804\uc5ed \uac1d\uccb4 \uc774\ub984\uc774 \ub2ec\ub790\uc74c\n\/\/ \ube0c\ub77c\uc6b0\uc800: window\n\/\/ Node: global\n\/\/ Web Worker: self\n\/\/ \ud1b5\ud569: globalThis (ES2020+)\n\nglobalThis.window === window;   \/\/ true (\ube0c\ub77c\uc6b0\uc800)\nglobalThis === global;          \/\/ true (Node)<\/code><\/pre>\n\n<h2>\ud55c \uc904 \uac00\uc774\ub4dc<\/h2>\n\n<ul>\n  <li>\uc774\ubca4\ud2b8 \ud578\ub4e4\ub7ec\u00b7\ucf5c\ubc31 \u2192 <strong>\ud654\uc0b4\ud45c<\/strong> \ub610\ub294 <strong>bind<\/strong>.<\/li>\n  <li>\ud074\ub798\uc2a4 \uba54\uc11c\ub4dc\ub97c \ubcc0\uc218\ub85c \ube7c\uba74 this \uc783\uc74c \u2014 \ubd84\ub9ac \uc804 bind.<\/li>\n  <li>\uc77c\ubc18 \ud568\uc218\uc758 this \ub294 strict \uba74 undefined. \uac00\ub2a5\ud558\uba74 \uc758\uc874 \uc548 \ud558\uae30.<\/li>\n  <li>\ud654\uc0b4\ud45c \ud568\uc218\ub294 <code>new<\/code>\u00b7<code>call\/apply<\/code> \uc601\ud5a5 \uc548 \ubc1b\uc74c.<\/li>\n  <li>TS \uba74 <code>noImplicitThis<\/code>(18\ud3b8) \uac00 \ubbf8\uc2a4 \uc7a1\uc544\uc90c.<\/li>\n<\/ul>\n\n<div class=\"cta\">\n  <h3>23\ud3b8 \u2014 \ud504\ub85c\ud1a0\ud0c0\uc785 \uccb4\uc778<\/h3>\n  <p>class \ub4a4\uc5d0 \uc228\uc740 \uc9c4\uc9dc. Object.create\u00b7__proto__\u00b7prototype \uc758 \ucc28\uc774.<\/p>\n<\/div>\n\n<div class=\"series-nav\">\n  <strong>\ud83d\udcda \uc27d\uac8c \ubc30\uc6b0\ub294 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uad50\uc7ac<\/strong><br>\n  \uc774\uc804: 21\ud3b8 \ud074\ub85c\uc800 \u00b7 \ud604\uc7ac: <strong>22\ud3b8 (\uace0\uae09)<\/strong> \u00b7 \ub2e4\uc74c \u2192 23\ud3b8 \ud504\ub85c\ud1a0\ud0c0\uc785 \u00b7 \uc9c4\ud589: <strong>22\/26<\/strong>\n<\/div>\n\n<\/article>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>this 4\uac00\uc9c0 \ud638\ucd9c \ubc29\uc2dd\u00b7\ud654\uc0b4\ud45c \ucc28\uc774\u00b7strict mode. 26\ud3b8 \uad50\uc7ac 22\ud3b8.<\/p>\n","protected":false},"author":1,"featured_media":548,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-354","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript-basic"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/comments?post=354"}],"version-history":[{"count":2,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/354\/revisions"}],"predecessor-version":[{"id":574,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/posts\/354\/revisions\/574"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media\/548"}],"wp:attachment":[{"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/media?parent=354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/categories?post=354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/junai.ai\/blog\/wp-json\/wp\/v2\/tags?post=354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}