Baseline Widely available
instanceof
ì°ì°ìë ìì±ìì prototype
ìì±ì´ ê°ì²´ì íë¡í íì
ì²´ì¸ ì´ëê° ì¡´ì¬íëì§ íë³í©ëë¤.
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
const auto = new Car("Honda", "Accord", 1998);
console.log(auto instanceof Car);
// Expected output: true
console.log(auto instanceof Object);
// Expected output: true
구문
object instanceof constructor;
매ê°ë³ì
object
íë³í ê°ì²´.
constructor
íë³ ëª©í í¨ì.
instanceof
ì°ì°ìë object
ì íë¡í íì
ì²´ì¸ì constructor.prototype
ì´ ì¡´ì¬íëì§ íë³í©ëë¤.
// ìì±ì ì ì
function C() {}
function D() {}
var o = new C();
// true, ìëíë©´ Object.getPrototypeOf(o) === C.prototype
o instanceof C;
// false, ìëíë©´ D.prototypeì´ o ê°ì²´ì íë¡í íì
ì²´ì¸ì ìì
o instanceof D;
o instanceof Object; // true, ìëíë©´
C.prototype instanceof Object; // true
C.prototype = {};
var o2 = new C();
o2 instanceof C; // true
// false, ìëíë©´ C.prototypeì´
// ë ì´ì oì íë¡í íì
ì²´ì¸ì ìì
o instanceof C;
D.prototype = new C(); // C를 Dì [[Prototype]] ë§í¬ë¡ ì¶ê°
var o3 = new D();
o3 instanceof D; // true
o3 instanceof C; // true, ìëíë©´ ì´ì C.prototypeì´ o3ì íë¡í íì
ì²´ì¸ì ì¡´ì¬
instanceof
ì ê°ì ìì±ì prototype
íë¡í¼í°ì ë³íì ë°ë¼ ë°ëì ìì¼ë©°, Object.setPrototypeOf
ì ì¬ì©í¨ì ë°ë¼ìë ë°ë ì ììì 주ìíì¸ì. ëí non-standardì __proto__
ìë-íë¡í¼í°ë ì¬ì©í ì ìëë¡ ë§ë¤ì´ ì¤ëë¤.
instanceof
ì multiple context (ì. íë ì ëë ì°½)
ë¤ë¥¸ ì¤ì½íë ë¤ë¥¸ ì¤í íê²½ì ê°ì§ëë¤. ì´ê²ì ë¤ë¥¸ ì¤ì½íë ë¤ë¥¸ ê³ ì ë ììë¤(ë¤ë¥¸ ì ì ì¤ë¸ì í¸, ë¤ë¥¸ ìì±ìë¤ ë±)ì ê°ì§ê³ ììì ì미í©ëë¤. ì´ ì¬ì¤ì ììì¹ ëª»í 결과를 ê°ì ¸ì¬ ìë ììµëë¤. ì를 ë¤ë©´, [] instanceof window.frames[0].Array
ë false
를 리í´í ê²ì
ëë¤. ìëíë©´, Array.prototype !== window.frames[0].Array
ì´ë©°, arrays ë ììë¡ë¶í° ììë°ê¸° ë문ì
ëë¤. ì´ê²ì ì²ììë ë§ì´ ëì§ ìì ìë ììµëë¤. íì§ë§, ì¤í¬ë¦½í¸ìì ì¬ë¬ íë ìì´ë ì°½ì ë¤ë£¨ë©°, ê°ì²´ë¥¼ í¨ì를 íµíì¬ íëì 컨í
ì¤í¸ìì ë¤ë¥¸ 컨í
ì¤í¸ë¡ ì¤ë¸ì í¸ë¥¼ ëê¸°ê² ëë¤ë©´, ì´ê±´ ì¶©ë¶í ì¼ì´ë ì ìë ì¼ì´ë©°, ì주 í° ì´ìê° ë ê²ì
ëë¤. ì를 ë¤ì´, 주ì´ì§ ì¤ë¸ì í¸ê° ì¤ì ë¡ Array.isArray(myObj)
를 ì¬ì©í Arrayì¸ì§ ìì íê² íì¸ í ì ììµëë¤.
ì°¸ê³ : XPCOM instanceof
ì ì¬ì©íë ì½ëììë í¹ë³í í¨ê³¼ë¥¼ ê°ì§ëë¤. : obj instanceof xpcomInterface
(ì. Components.interfaces.nsIFile
)ê° obj.QueryInterface(xpcomInterface)
를 í¸ì¶íê³ , ë§ì½ QueryInterface ê° ì±ê³µíë©´ true
를 리í´í©ëë¤. ì´ í¸ì¶ì ë¶ê° í¨ê³¼ë¡ë obj
ìì ì±ê³µì ì¸ instanceof
í
ì¤í¸ íì xpcomInterface
'sì íë¡í¼í°ë¥¼ ì¬ì©í ì ììµëë¤. ì¤í ë¤ë JavaScript ì ììì±ë¤ê³¼ë ë¬ë¦¬, í
ì¤í¸ obj instanceof xpcomInterface
ë obj
ê° ë¤ë¥¸ ì¤ì½íì ìëë¼ë ìëí©ëë¤.
String
ê³¼ Date
ë íì
Object
ì´ë©°, ìì¸ì ì¸ ê²½ì°ìì ì
ì¦í기
ìëì ì½ëë instanceof
를 String
ê³¼ Date
ì¤ë¸ì í¸ë íì
Object
ìì íì¸í기 ìí´ ì¬ì©í©ëë¤.(ì´ ì¤ë¸ì í¸ë¤ì Object
ë¡ë¶í° íìëììµëë¤.)
ê·¸ë¬ë, ì¬ê¸°ì ì¤ë¸ì í¸ ë¦¬í°ë´ ë
¸í
ì´ì
ì¼ë¡ ìì±ë ì¤ë¸ì í¸ë ìì¸ì ì
ëë¤. : ë¹ë¡ íë¡í íì
ì´ ì ìëì§ ììì§ë§, instanceof Object
ë true
를 리í´í©ëë¤.
var simpleStr = "This is a simple string";
var myString = new String();
var newStr = new String("String created with constructor");
var myDate = new Date();
var myObj = {};
simpleStr instanceof String; // returns false, prototype chainì íì¸íê³ , undefined를 ì°¾ëë¤.
myString instanceof String; // returns true
newStr instanceof String; // returns true
myString instanceof Object; // returns true
myObj instanceof Object; // returns true, undefined prototype ììë ë¶êµ¬íê³ true.
({}) instanceof Object; // returns true, ìì ê²½ì°ì ëì¼.
myString instanceof Date; // returns false
myDate instanceof Date; // returns true
myDate instanceof Object; // returns true
myDate instanceof String; // returns false
mycar
ë íì
Car
ì íì
Object
ìì ì
ì¦í기
ë¤ìì ì½ëë Car
ì¤ë¸ì í¸ íì
ê³¼ ê·¸ ì¤ë¸ì í¸ íì
ì ì¸ì¤í´ì¤ mycar
를 ìì±í©ëë¤. instanceof
ì°ì°ìë mycar
ì¤ë¸ì í¸ë íì
Car
ì íì
Object
ë¼ë ê²ì ë³´ì¬ì¤ëë¤.
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
var mycar = new Car("Honda", "Accord", 1998);
var a = mycar instanceof Car; // returns true
var b = mycar instanceof Object; // returns true
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4