[ Web Proxy ]
URL:
Viewing: https://ko.javascript.info/reference-type [Back]  [Original]

:
Light themeDark theme
DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek
2020 8 16

(edge case) .

, .

this .

.

let user = {
  name: "John",
  hi() { alert(this.name); },
  bye() { alert("Bye"); }
};

user.hi(); // John (     .)

// name  user.hi user.bye  .
(user.name == "John" ? user.hi : user.bye)(); // TypeError: Cannot read property 'name' of undefined

user.hi user.bye . user name "John" user.hi .

. () hi .

"this" undefined .

.

user.hi();

.

(user.name == "John" ? user.hi : user.bye)();

? obj.method() , .

obj.method() .

  1. '.' obj.method .
  2. () () .

this ?

this .

let user = {
  name: "John",
  hi() { alert(this.name); }
}

//      
let hi = user.hi;
hi(); // this undefined   .

hi = user.hi . this .

user.hi() . '.' , (Reference Type) .

' (specification type)'. .

(base, name, strict) .

  • base:
  • name:
  • strict: true

user.hi , ( ) . .

//  
(user, "hi", true)

() , . this(=user) .

. () .

( ) user.hi () . this .

obj.method() , obj[method]() this . func.bind() , .

.

. (obj.method()) . .

() , this .

. . .

. .

: 2

.

let user = {
  name: "John",
  go: function() { alert(this.name) }
}

(user.go)()

: . ( )

!

.

let user = {
  name: "John",
  go: function() { alert(this.name) }
}

(user.go)() // error!

.

user = {...} .

((us... ) . .

let user = { go:... }(user.go)()

(user.go) . user let user .

user = {...} .

let user = {
  name: "John",
  go: function() { alert(this.name) }
};

(user.go)() // John

, (user.go) . , (user.go) . . .

: 3

user.go() 4 .

((1)) ((2)) ((3)) ((4)) . ?

let obj, method;

obj = {
  go: function() { alert(this); }
};

obj.go();               // (1) [object Object]

(obj.go)();             // (2) [object Object]

(method = obj.go)();    // (3) undefined

(obj.go || obj.stop)(); // (4) undefined

.

  1. .

  2. . .

  3. ((expression).method()) . .

    f = obj.go; //  
    f();        //   

    f() ( ) . this .

  4. (3) . expression obj.go || obj.stop .

(3) (4) . ((base, name, strict)) .

, . this .

.

Web Proxy Viewer  |  New URL  |  Original Page