Baseline Widely available *
Object
í´ëì¤ë JavaScriptì ë°ì´í° ì í ì¤ íë를 ëíë
ëë¤. ë¤ìí í¤ ëª¨ì ë° ë ë³µì¡í ìí°í°ë¤ì ì ì¥íë ë° ì¬ì©ë©ëë¤. ê°ì²´ë Object()
ìì±ì ëë ê°ì²´ ì´ê¸°ì / 리í°ë´ 구문를 íµí´ ìì±í ì ììµëë¤.
JavaScriptì ê±°ì 모ë ê°ì²´ë Object
ì ì¸ì¤í´ì¤ì
ëë¤. ì¼ë°ì ì¸ ê°ì²´ë Object.prototype
ìì ìì±(ë©ìë í¬í¨)ì ììíì§ë§, ì´ë¬í ìì±ë¤ì ê°ë ¤ì§(ì¬ì ìë ) ì ììµëë¤. ê·¸ë¬ë Object
ë ìëì ì¼ë¡ ê°ë ¤ì§ì§ ìê² ìì±ëê±°ë(ì: Object.create(null)
), ëì´ì ê°ë ¤ì§ì§ ìëë¡ ë³ê²½ë ì ììµëë¤(ì: Object.setPrototypeOf
).
Object
íë¡í íì
ê°ì²´ì ëí ë³ê²½ ì¬íì í´ë¹ ë³ê²½ ì¬íì ëìì´ ëë íë¡í íì
ì²´ì¸ìì ìì± ë° ë©ìëê° ì¶ê°ë¡ ì¬ì ìëì§ ìë í íë¡í íì
ì²´ì¸ì íµí´ 모ë ê°ì²´ìì ë³¼ ì ììµëë¤. ì´ê²ì ê°ì²´ ëìì ì¬ì ìíê±°ë íì¥íë ë§¤ì° ê°ë ¥íì§ë§ ì ì¬ì ì¼ë¡ ìíí ë©ì»¤ëì¦ì ì ê³µí©ëë¤.
Object
ìì±ìë 주ì´ì§ ê°ì ëí ê°ì²´ ëí¼ë¥¼ ìì±í©ëë¤.
null
ëë undefined
ì´ë©´ ë¹ ê°ì²´ë¥¼ ìì±íì¬ ë°íí©ëë¤.ìì±ìê° ìë ë§¥ë½ìì í¸ì¶ë ë Object
ë new Object()
ì ëì¼íê² ìëí©ëë¤.
ê°ì²´ ì´ê¸°ì / 리í°ë´ 구문ë 참조íì¸ì.
ê°ì²´ì ìì± ìì í기ê°ì²´ ìì²´ìë ìì±ì ìì íë ë©ìëê° ììµëë¤(ì: Map.prototype.delete()
). ìì í기 ìí´ìë delete ì°ì°ì를 ì¬ì©í´ì¼ í©ëë¤.
Object()
ì Object
ê°ì²´ë¥¼ ë§ëëë¤. ì´ ë ìì±ë ê°ì²´ë 주ì´ì§ ê°ì ëí ëí¼ì
ëë¤.
Object.assign()
íë ì´ìì ì본 ê°ì²´ë¤ë¡ë¶í° 모ë ì´ê±° ê°ë¥í ìì±ë¤ì ëì ê°ì²´ë¡ ë³µì¬í©ëë¤.
Object.create()
ì§ì í íë¡í íì (prototype)ì ê°ì²´ ë° ìì±ì ê°ê³ ìë ì ê°ì²´ë¥¼ ìì±í©ëë¤.
Object.defineProperty()
ì§ì í ìì ì(descriptor)ìì ìì í ìì±ì ê°ì²´ì ì¶ê°í©ëë¤.
Object.defineProperties()
ì§ì í ìì ìë¤ìì ìì í ìì±ë¤ì ê°ì²´ì ì¶ê°í©ëë¤.
Object.entries()
ì§ì í ê°ì²´ ìì ì 모ë ì´ê±° ê°ë¥í 문ìì´ ìì±ë¤ì [key, value]
ìì¼ë¡ 구ì±ë ë°°ì´ì ë°íí©ëë¤.
Object.freeze()
ê°ì²´ë¥¼ ê³ ì (freeze)í©ëë¤. ë¤ë¥¸ ê³³ì ì½ëìì í´ë¹ ìì±ì ìì íê±°ë ë³ê²½í ì ìê² ë©ëë¤.
Object.fromEntries()
[key, value]
ìì iterableë¡ë¶í° ì ê°ì²´ë¥¼ ë°íí©ëë¤. (Object.entries
ì ë°ëì
ëë¤.)
Object.getOwnPropertyDescriptor()
ê°ì²´ì ì§ì í ìì±ì ëí ìì± ìì ì를 ë°íí©ëë¤.
Object.getOwnPropertyDescriptors()
ê°ì²´ ìì ì 모ë ìì± ìì ìë¤ë¡ 구ì±ë ê°ì²´ë¥¼ ë°íí©ëë¤.
Object.getOwnPropertyNames()
ì§ì í ê°ì²´ ìì ì 모ë ì´ê±° ê°ë¥íê±°ë ë¶ê°ë¥í ìì±ë¤ì ì´ë¦ì¼ë¡ 구ì±ë ë°°ì´ì ë°íí©ëë¤.
Object.getOwnPropertySymbols()
ì§ì í ê°ì²´ ìì ì 모ë ì¬ë³¼ ìì±ë¤ë¡ 구ì±ë ë°°ì´ì ë°íí©ëë¤.
Object.getPrototypeOf()
ì§ì í ê°ì²´ì íë¡í íì
(ë´ë¶ [[Prototype]]
ìì±)ì ë°íí©ëë¤.
Object.is()
ë ê°ì´ ê°ìì§ë¥¼ ë¹êµí©ëë¤. 모ë NaN
ê°ì ê°ë¤ê³ ì²ë¦¬í©ëë¤. (ì¶ì ëë± ë¹êµ ë° ì격í ëë± ë¹êµì ë¤ë¥¸ ì ì
ëë¤.)
Object.isExtensible()
ê°ì²´ì íì¥ì´ ê°ë¥íì§ ì¬ë¶ë¥¼ íì¸í©ëë¤.
Object.isFrozen()
ê°ì²´ê° ê³ ì (freeze)ëìëì§ ì¬ë¶ë¥¼ íì¸í©ëë¤.
Object.isSealed()
ê°ì²´ê° ë´ì¸(seal)ëìëì§ ì¬ë¶ë¥¼ íì¸í©ëë¤.
Object.keys()
ì§ì í ê°ì²´ ìì ì 모ë ì´ê±° ê°ë¥í 문ìì´ ìì±ë¤ì ì´ë¦ì¼ë¡ 구ì±ë ë°°ì´ì ë°íí©ëë¤.
Object.preventExtensions()
ê°ì²´ê° íì¥ëì§ ëª»íëë¡ í©ëë¤.
Object.seal()
ë¤ë¥¸ ì½ëê° ê°ì²´ì ìì±ì ìì íì§ ëª»íëë¡ í©ëë¤.
Object.setPrototypeOf()
ê°ì²´ì íë¡í íì
(ë´ë¶ [[Prototype]]
ìì±)ì ì¤ì í©ëë¤.
Object.values()
ì§ì í ê°ì²´ ìì ì 모ë ì´ê±° ê°ë¥í 문ìì´ ìì±ì í´ë¹íë ê°ë¤ë¡ 구ì±ë ë°°ì´ì ë°íí©ëë¤.
Object.prototype.constructor
ê°ì²´ì íë¡í íì ì ìì±íë í¨ì를 ì§ì í©ëë¤.
Object.prototype.__proto__
ê°ì²´ê° ì¸ì¤í´ì¤íë ë íë¡í íì ì¼ë¡ ì¬ì©ë ê°ì²´ë¥¼ ê°ë¦¬íµëë¤.
Object.prototype.__defineGetter__()
ì¡ì¸ì¤(get)í ë ì¤íëì´ ê°ì ë°ííë í¨ìì ì§ì í ìì±ì ì°ê²°í©ëë¤.
Object.prototype.__defineSetter__()
ì¤ì (set)í ë ì¤íëì´ í´ë¹ ìì±ì ìì íë í¨ìì ì§ì í ìì±ì ì°ê²°í©ëë¤.
Object.prototype.__lookupGetter__()
Object.prototype.__defineGetter__()
ë©ìëì ìí´ ì§ì ë ìì±ê³¼ ì°ê²°ë í¨ì를 ë°íí©ëë¤.
Object.prototype.__lookupSetter__()
Object.prototype.__defineSetter__()
ë©ìëì ìí´ ì§ì ë ìì±ê³¼ ì°ê²°ë í¨ì를 ë°íí©ëë¤.
Object.prototype.hasOwnProperty()
ê°ì²´ì ì§ì í ìì±ì´ í´ë¹ ê°ì²´ì ì§ì í¬í¨ëì´ ìê³ íë¡í íì ì²´ì¸ì íµí´ ììëì§ ìëì§ ì¬ë¶ë¥¼ ëíë´ë ë¶ë¦¬ì¸ ê°ì ë°íí©ëë¤.
Object.prototype.isPrototypeOf()
ì´ ë©ìë를 í¸ì¶í ê°ì²´ê° ì§ì í ê°ì²´ì íë¡í íì ì²´ì¸ì ìëì§ ì¬ë¶ë¥¼ ëíë´ë ë¶ë¦¬ì¸ ê°ì ë°íí©ëë¤.
Object.prototype.propertyIsEnumerable()
ë´ë¶ ECMAScript [[Enumerable]] ìì±ì´ ì¤ì ëìëì§ ì¬ë¶ë¥¼ ëíë´ë ë¶ë¦¬ì¸ ê°ì ë°íí©ëë¤.
Object.prototype.toLocaleString()
toString()
를 í¸ì¶í©ëë¤.
Object.prototype.toString()
ê°ì²´ì 문ìì´ ííì ë°íí©ëë¤.
Object.prototype.valueOf()
ì§ì í ê°ì²´ì ìì ê°ì ë°íí©ëë¤.
undefined
ë° null
íì
ì ì§ì í Object
ì¬ì©
ë¤ì ìì ë ë³ì o
ì ë¹ Object
ê°ì²´ë¥¼ ì ì¥í©ëë¤.
let o = new Object(undefined);
let o = new Object(null);
Object
ë¡ Boolean
ê°ì²´ ìì±í기
ë¤ì ìì ë ë³ì o
ì Boolean
ê°ì²´ë¥¼ ì ì¥í©ëë¤.
// o = new Boolean(true) ì ê°ì
let o = new Object(true);
// o = new Boolean(false) ì ê°ì
let o = new Object(Boolean());
ê°ì²´ íë¡í íì
기존 Object.prototype
ë©ìëì ëìì ë³ê²½íê³ ì í ëìë 기존 ë´ì©ì ìì´ë ë¤ì íì¥í ë´ì©ì ëííì¬ ì½ë를 주ì
íë ê²ì ê³ ë ¤íì¸ì. ì를 ë¤ì´, ì´ (í
ì¤í¸ëì§ ìì) ì½ëë 기본 ì ê³µ ì½ë ëë ë¤ë¥¸ ì¬ëì íì¥ ì¤íë기 ì ì ì¬ì ì¡°ê±´ë¶ë¡ ì¬ì©ì ì ì ì½ë를 ì¤íí©ëë¤.
í¨ìê° í¸ì¶ëë©´ í¸ì¶ì ëí 매ê°ë³ìê° ì ì¬ë°°ì´ "ë³ì" arguments ê°ì²´ì ë³´ê´ë©ëë¤. ì를 ë¤ì´, myFn(a, b, c)
를 í¸ì¶íë©´ myFn
본문 ë´ì arguments ê°ì²´ìë (a, b, c)
ì í´ë¹íë 3ê°ì ì ì¬ë°°ì´ììê° í¬í¨ë©ëë¤.
hookì íµí´ íë¡í íì
ì ìì íê³ ì í ëì í´ë¹ í¨ììì apply()
를 í¸ì¶íë©´ì this
ì arguments ê°ì²´ë¥¼ íì¬ ëìì ì ë¬í©ëë¤. ì´ í¨í´ì Node.prototype
, Function.prototype
ë± ëª¨ë íë¡í íì
ì ì ì©í ì ììµëë¤.
var current = Object.prototype.valueOf;
// ë´ê° ì§ì í ìì± "-prop-value"ì ë²ë¶ì¼ì ê±¸ì³ ì¬ì©ëê³ ìê³
// íì ëì¼í íë¡í íì
ì²´ì¸ì ìì§ ì기 ë문ì, Object.prototypeì ìì íê³ ì¶ìµëë¤.
Object.prototype.valueOf = function () {
if (this.hasOwnProperty("-prop-value")) {
return this["-prop-value"];
} else {
// ë´ê° ë§ë ê°ì²´ê° ìë ê² ê°ì¼ë¯ë¡,
// ê°ë¥í ìµì ì ë¤í´ ìëì ëìì ì¬ííì¬ ê¸°ë³¸ ëìì¼ë¡ ëìê°ê² ìµëë¤.
// 'apply' ë©ìëë ë¤ë¥¸ ì¸ì´ììì 'super'ì²ë¼ ìëí©ëë¤.
// valueOf()ê° arguments를 ì·¨íì§ ìëë¼ë, ë¤ë¥¸ hookì´ ìì¼ë¦¬ë¼ ìê°í©ëë¤.
return current.apply(this, arguments);
}
};
JavaScriptìë ëª íí íì í´ëì¤ ê°ì²´ê° ì기 ë문ì, íë¡í íì ì í¹ì 기ë¥ì "기본 í´ëì¤" ê°ì²´ë¥¼ ë§ëë ë° ì ì©í í´ê²° ë°©ë²ì ëë¤. ì를 ë¤ì´:
var Person = function (name) {
this.name = name;
this.canTalk = true;
};
Person.prototype.greet = function () {
if (this.canTalk) {
console.log("Hi, I am " + this.name);
}
};
var Employee = function (name, title) {
Person.call(this, name);
this.title = title;
};
Employee.prototype = Object.create(Person.prototype);
Employee.prototype.constructor = Employee; // Object.prototype.constructor를 Employeeë¡ ì¤ì íì§ ìì¼ë©´
// Person (parent)ì prototype.constructor를 ì¬ì©í©ëë¤.
// ì´ë¥¼ í¼í기 ìí´ prototype.constructor를 Employee (child)ë¡ ì¤ì í©ëë¤.
Employee.prototype.greet = function () {
if (this.canTalk) {
console.log("Hi, I am " + this.name + ", the " + this.title);
}
};
var Customer = function (name) {
Person.call(this, name);
};
Customer.prototype = Object.create(Person.prototype);
Customer.prototype.constructor = Customer; // Object.prototype.constructor를 Customerë¡ ì¤ì íì§ ìì¼ë©´
// Person (parent)ì prototype.constructor를 ì¬ì©í©ëë¤.
// ì´ë¥¼ í¼í기 ìí´ prototype.constructor를 Customer (child)ë¡ ì¤ì í©ëë¤.
var Mime = function (name) {
Person.call(this, name);
this.canTalk = false;
};
Mime.prototype = Object.create(Person.prototype);
Mime.prototype.constructor = Mime; // Object.prototype.constructor를 Mimeë¡ ì¤ì íì§ ìì¼ë©´
// Person (parent)ì prototype.constructor를 ì¬ì©í©ëë¤.
// ì´ë¥¼ í¼í기 ìí´ prototype.constructor를 Mime (child)ë¡ ì¤ì í©ëë¤.
var bob = new Employee("Bob", "Builder");
var joe = new Customer("Joe");
var rg = new Employee("Red Green", "Handyman");
var mike = new Customer("Mike");
var mime = new Mime("Mime");
bob.greet();
// Hi, I am Bob, the Builder
joe.greet();
// Hi, I am Joe
rg.greet();
// Hi, I am Red Green, the Handyman
mike.greet();
// Hi, I am Mike
mime.greet();
ëª
ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
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