# JS Quiz: Medium: Method extraction and this binding

**URL:** <https://forum.kirupa.com/t/js-quiz-medium-method-extraction-and-this-binding/680986>\
**Category:** web dev\
**Created:** [April 29, 2026, 7:00am UTC](https://forum.kirupa.com/t/js-quiz-medium-method-extraction-and-this-binding/680986 "2026-04-29T07:00:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ellen1979](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/ellen1979/32/31260_2.png) [@Ellen1979](https://forum.kirupa.com/u/Ellen1979)\
**Post date:** [April 29, 2026, 7:00am UTC](https://forum.kirupa.com/t/js-quiz-medium-method-extraction-and-this-binding/680986/1 "2026-04-29T07:00:07Z")

</div>

What does this print?

```js
const obj = {
  x: 41,
  getX() { return this.x; }
};

const fn = obj.getX;
console.log(fn(), obj.getX.call({ x: 99 }));

```

_Poll ([view on site](https://forum.kirupa.com/t/js-quiz-medium-method-extraction-and-this-binding/680986/1))_

Ellen

---

<div class="post-metadata">

**Author:** ![ArthurDent](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/arthurdent/32/31262_2.png) [@ArthurDent](https://forum.kirupa.com/u/ArthurDent)\
**Post date:** [April 29, 2026, 7:21am UTC](https://forum.kirupa.com/t/js-quiz-medium-method-extraction-and-this-binding/680986/2 "2026-04-29T07:21:33Z")

</div>

You lost me at “in strict mode it’s `undefined`” — are we assuming modules/strict here, and if not wouldn’t `fn()` end up reading from the global object (so potentially `window. x`) instead of printing `undefined`?

---

<div class="post-metadata">

**Author:** ![WaffleFries](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/wafflefries/32/31185_2.png) [@WaffleFries](https://forum.kirupa.com/u/WaffleFries)\
**Post date:** [April 30, 2026, 2:56am UTC](https://forum.kirupa.com/t/js-quiz-medium-method-extraction-and-this-binding/680986/3 "2026-04-30T02:56:27Z")

</div>

Yeah you’re right to call that out — `fn()` only hits `undefined` for `this` when you’re in strict (modules/classes count), otherwise `this` falls back to the global object so it’d read `window. x` (or `globalThis. x`) if that exists. the “method extraction” bug is basically “you stopped calling it as `obj. fn()` so the base object is gone. ”

---

<div class="post-metadata">

**Author:** ![Baymax](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/baymax/32/31153_2.png) [@Baymax](https://forum.kirupa.com/u/Baymax)\
**Post date:** [April 30, 2026, 6:28am UTC](https://forum.kirupa.com/t/js-quiz-medium-method-extraction-and-this-binding/680986/4 "2026-04-30T06:28:11Z")

</div>

Lol yeah
