Baseline Widely available *
Object
å㯠JavaScript ã®ãã¼ã¿åã®ä¸ã¤ã表ãã¾ããããã¯æ§ã
ãªãã¼ä»ãã³ã¬ã¯ã·ã§ã³ã¨ããè¤éãªå®æ
ãæ ¼ç´ããããã«ä½¿ç¨ããã¾ãã Object 㯠Object()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¾ãã¯ãªãã¸ã§ã¯ãåæåå/ãªãã©ã«æ§æã使ç¨ãã¦çæãããã¨ãã§ãã¾ãã
JavaScript ã®ã»ã¼ãã¹ã¦ã®ãªãã¸ã§ã¯ãã Object
ã®ã¤ã³ã¹ã¿ã³ã¹ã§ããä¸è¬çãªãªãã¸ã§ã¯ãã¯ãããããã£ã (ã¡ã½ãããå«ãã¦) Object.prototype
ããç¶æ¿ãã¦ãã¾ããããããã®ããããã£ã¯ã·ã£ãã¦å (å¥åãªã¼ãã¼ã©ã¤ã) ããã¦ããå ´åãããã¾ãã Object.prototype
ãç¶æ¿ããªããªãã¸ã§ã¯ãã¯ã null
ãããã¿ã¤ããæã¤ãªãã¸ã§ã¯ããããã®ä»ã® null
ãããã¿ã¤ããªãã¸ã§ã¯ãã®åå«ã ãã§ãã
Object
ãããã¿ã¤ããªãã¸ã§ã¯ãã¸ã®å¤æ´ã¯ããã®å¤æ´ã®å¯¾è±¡ã¨ãªãããããã£ãã¡ã½ããããããã¿ã¤ããã§ã¼ã³ã«æ²¿ã£ã¦ããã«ãªã¼ãã¼ã©ã¤ããããªãéãããããã¿ã¤ããã§ã¼ã³ãéãã¦ãã¹ã¦ã®ãªãã¸ã§ã¯ãã«åæ ããã¾ããããã¯ã¨ã¦ãå¼·åã§ããããªãã¸ã§ã¯ãã®åä½ããªã¼ãã¼ã©ã¤ããããæ¡å¼µãããããã®ã¯æ½å¨çã«å±éºãã¯ããä»çµã¿ã§ãããã¾ããããå®å
¨ã«ããããã«ã Object.prototype
㯠JavaScript ã®ã³ã¢è¨èªã§å¯ä¸ãä¸å¤ã®ãããã¿ã¤ããæã¤ãªãã¸ã§ã¯ãã§ãã Object.prototype
ã®ãããã¿ã¤ãã¯å¸¸ã« null
ã§ããã夿´ã§ãã¾ããã
ã¤ã³ã¹ã¿ã³ã¹ãã Object.prototype
ã¡ã½ãããç´æ¥å¼ã³åºããã¨ã¯é¿ããã¹ãã§ããç¹ã«ã夿
æ§ãæå³ããã¦ããªãã¡ã½ããï¼ã¤ã¾ããåæã®åä½ã ããæå³ãæã¡ãåå«ãªãã¸ã§ã¯ããæå³ã®ããæ¹æ³ã§ããã䏿¸ããããã¨ã¯ã§ããªãã¡ã½ããï¼ã¯é¿ããã¹ãã§ãã Object.prototype
ããåå«ãããã¹ã¦ã®ãªãã¸ã§ã¯ãã¯ãåãååãæã¤ããæå¾
ãããã®ã¨ã¯ã¾ã£ããç°ãªãæå³ã¥ããæã¤ãã«ã¹ã¿ã ã®èªåèªèº«ã§ããããã£ãå®ç¾©ãããã¨ãã§ãã¾ããããã«ããããã®ããããã£ã¯ null
ãããã¿ã¤ããªãã¸ã§ã¯ãã«ã¯ç¶æ¿ããã¾ããããªãã¸ã§ã¯ãã使¥ããããã®ç¾è¡ã® JavaScript ã¦ã¼ãã£ãªãã£ã¯ãã¹ã¦éçã§ãããã£ã¨å
·ä½çã«ã¯ã次ã®éãã§ãã
valueOf()
ãtoString()
ãtoLocaleString()
ã¯å¤æ
çãªå®è£
ã¨ãã¦åå¨ãããªãã¸ã§ã¯ããè³¢æãªæ¯ãèããæã¤èªåèªèº«ã®å®è£
ãå®ç¾©ãã¦ãããã¨ãæå¾
ããå¿
è¦ãããã®ã§ãã¤ã³ã¹ã¿ã³ã¹ã¡ã½ããã¨ãã¦å¼ã³åºããã¨ãã§ãã¾ããããããvalueOf()
㨠toString()
ã¯é常ãå夿ã«ãã£ã¦æé»ã®ãã¡ã«å¼ã³åºãããã®ã§ãã³ã¼ãã®ä¸ã§èªåã§å¼ã³åºãå¿
è¦ã¯ããã¾ããã__defineGetter__()
ã__defineSetter__()
ã__lookupGetter__()
ã__lookupSetter__()
ã¯éæ¨å¥¨ã§ããã使ç¨ãã¹ãã§ã¯ããã¾ããã代ããã«éçãªä»£æ¿ã§ãã Object.defineProperty()
ã Object.getOwnPropertyDescriptor()
ã使ç¨ãã¦ãã ããã__proto__
ããããã£ã¯éæ¨å¥¨ã§ããã使ç¨ãã¹ãã§ã¯ããã¾ããã代æ¿ã§ãã Object.getPrototypeOf()
ããã³ Object.setPrototypeOf()
ã¯éçã¡ã½ããã§ããpropertyIsEnumerable()
ããã³ hasOwnProperty()
ã¡ã½ããã¯ããããã Object.getOwnPropertyDescriptor()
ããã³ Object.hasOwn()
éçã¡ã½ããã«ç½®ãæãããã¨ãã§ãã¾ããisPrototypeOf()
ã¡ã½ããã¯é常ãã³ã³ã¹ãã©ã¯ã¿ã¼ã® prototype
ããããã£ãæ¤æ»ãã¦ããã®ã§ããã°ãinstanceof
ã§ç½®ãæãããã¾ããæå³çã«ç価ãªéçã¡ã½ãããåå¨ããªãå ´åãã¾ã㯠Object.prototype
ã¡ã½ãããæ¬å½ã«ä½¿ç¨ãããå ´åã¯ããªãã¸ã§ã¯ããäºæããªãçµæããããããªã¼ãã¼ã©ã¤ãããããã£ãä¿æããªãããã«ã代ããã«å¯¾è±¡ã¨ãããªãã¸ã§ã¯ãã® Object.prototype
ã¡ã½ãããç´æ¥ call()
ãå¼ã³åºãå¿
è¦ãããã¾ãã
const obj = {
foo: 1,
// èªåèªèº«ã§ãã®ãããªã¡ã½ãããå®ç¾©ãã¹ãã§ã¯ããã¾ãããã
// å¤é¨å
¥åãããªãã¸ã§ã¯ããåãåã£ã¦ããå ´åã«ã¯ããã®ãããª
// ãã¨ãèµ·ãããªãããã«ãããã¨ã¯ã§ããªãããããã¾ããã
propertyIsEnumerable() {
return false;
},
};
obj.propertyIsEnumerable("foo"); // false; äºæããªãçµæ
Object.prototype.propertyIsEnumerable.call(obj, "foo"); // true; æå¾
éãã®çµæ
ãªãã¸ã§ã¯ãããã®ããããã£ã®åé¤
ãªãã¸ã§ã¯ãèªä½ã«ã¯ãèªèº«ã®ããããã£ãåé¤ããã¡ã½ãã (Map.prototype.delete()
ã®ãããªãã®) ã¯ããã¾ããããããè¡ãã«ã¯ã delete
æ¼ç®åã使ç¨ããå¿
è¦ãããã¾ãã
JavaScript ã§ã¯ãã»ã¼ãã¹ã¦ã®ãªãã¸ã§ã¯ããæçµçã« Object.prototype
ããç¶æ¿ãã¦ãã¾ãï¼ç¶æ¿ã¨ãããã¿ã¤ããã§ã¼ã³ãåç
§ï¼ããã ãã null
ãããã¿ã¤ããªãã¸ã§ã¯ã㯠Object.create(null)
ããªãã¸ã§ã¯ãåæååæ§æ ã§ __proto__: null
ã¨ãããã¨ã§ä½æãããã¨ãã§ãã¾ãï¼æ³¨: ãªãã¸ã§ã¯ããªãã©ã«å
ã® __proto__
ãã¼ã¯éæ¨å¥¨ã® Object.prototype.__proto__
ããããã£ã¨ã¯ç°ãªãã¾ãï¼ãæ¢åã®ãªãã¸ã§ã¯ãã®ãããã¿ã¤ãã null
ã«å¤æ´ããã«ã¯ã Object.setPrototypeOf(obj, null)
ãå¼ã³åºãã¦ãã ããã
const obj = Object.create(null);
const obj2 = { __proto__: null };
ãããã¿ã¤ãã null
ã®ãªãã¸ã§ã¯ãã¯ãObject.prototype
ãããªãã¸ã§ã¯ãã¡ã½ãããç¶æ¿ãã¦ããªããããäºæããªãåä½ããããã¨ãããã¾ããããã¯ç¹ã«ãããã°æã«å½ã¦ã¯ã¾ãã¾ããä¸è¬çãªãªãã¸ã§ã¯ãããããã£ã®å¤æ/æ¤åºã¦ã¼ãã£ãªãã£é¢æ°ã¯ã¨ã©ã¼ãçæããããæ
å ±ã失ãå¯è½æ§ãããããã§ãï¼ç¹ã«ãã¨ã©ã¼ãç¡è¦ããæé»ã®ã¨ã©ã¼ãã©ããã使ç¨ãã¦ããå ´åï¼ã
ä¾ãã°ã Object.prototype.toString()
ããªãããããããã°ãé£ãããªããã¨ãããããã¾ãã
const normalObj = {}; // é常ã®ãªãã¸ã§ã¯ãã使
const nullProtoObj = Object.create(null); // ãããã¿ã¤ãã "null" ã§ãããªãã¸ã§ã¯ãã使
console.log(`normalObj is: ${normalObj}`); // "normalObj is: [object Object]" ã¨è¡¨ç¤º
console.log(`nullProtoObj is: ${nullProtoObj}`); // ã¨ã©ã¼: Cannot convert object to primitive value ãçºç
alert(normalObj); // [object Object] ã¨è¡¨ç¤º
alert(nullProtoObj); // ã¨ã©ã¼: Cannot convert object to primitive value ãçºç
ä»ã®ã¡ã½ããã失æãã¾ãã
normalObj.valueOf(); // {} ã¨è¡¨ç¤º
nullProtoObj.valueOf(); // ã¨ã©ã¼: nullProtoObj.valueOf is not a function ãçºç
normalObj.hasOwnProperty("p"); // "true" ã¨è¡¨ç¤º
nullProtoObj.hasOwnProperty("p"); // ã¨ã©ã¼: nullProtoObj.hasOwnProperty is not a function ãçºç
normalObj.constructor; // "Object() { [native code] }" ã¨è¡¨ç¤º
nullProtoObj.constructor; // "undefined" ã¨è¡¨ç¤º
toString
ã¡ã½ããã null ãããã¿ã¤ããªãã¸ã§ã¯ãã«å²ãå½ã¦ããã¨ã§è¿½å ãããã¨ãã§ãã¾ãã
nullProtoObj.toString = Object.prototype.toString; // æ°ãããªãã¸ã§ã¯ãã« toString ãæ¬ ãã¦ãããããå
ã®æ±ç¨çãªãã®ã追å ããªãã
console.log(nullProtoObj.toString()); // "[object Object]" ã¨è¡¨ç¤º
console.log(`nullProtoObj is: ${nullProtoObj}`); // "nullProtoObj is: [object Object]" ã¨è¡¨ç¤º
é常ã®ãªãã¸ã§ã¯ãã toString()
ããªãã¸ã§ã¯ãã®ãããã¿ã¤ãã«æã¤ã®ã¨ã¯ç°ãªããããã§ã® toString()
ã¡ã½ãã㯠nullProtoObj
ã®èªåèªèº«ã®ããããã£ã§ãããã㯠nullProtoObj
ã«ã¯ (null
) ãããã¿ã¤ãããªãããã§ãã
ã¾ãã Object.setPrototypeOf(nullProtoObj, Object.prototype)
ãç¨ãã¦ã null ãããã¿ã¤ããªãã¸ã§ã¯ããæ®éã®ãªãã¸ã§ã¯ãã«æ»ããã¨ãã§ãã¾ãã
å®éã«ã¯ã null
ãããã¿ã¤ããæã¤ãªãã¸ã§ã¯ãã¯é常ããããã®å®ä¾¡ãªä»£ç¨ã¨ãã¦ä½¿ç¨ããã¾ãã Object.prototype
ããããã£ãåå¨ããã¨ãããã¤ãã®ãã°ãçºçãã¾ãã
const ages = { alice: 18, bob: 27 };
function hasPerson(name) {
return name in ages;
}
function getAge(name) {
return ages[name];
}
hasPerson("hasOwnProperty"); // true
getAge("toString"); // [Function: toString]
null ãããã¿ã¤ããªãã¸ã§ã¯ãã使ç¨ãããã¨ã§ã hasPerson
颿°ã getAge
颿°ã«ãã¾ãè¤éãããããããã¨ãªãããã®å±éºæ§ãé¤å»ãããã¨ãã§ãã¾ãã
const ages = Object.create(null, {
alice: { value: 18, enumerable: true },
bob: { value: 27, enumerable: true },
});
hasPerson("hasOwnProperty"); // false
getAge("toString"); // undefined
ãã®ãããªå ´åããã¼ã¿ã¨ãã¦æ ¼ç´ãããä»ã®ãã¼ã¨å¤ã®ãã¢ã¨æ··åãããå¯è½æ§ããããããã¡ã½ããã®è¿½å ã¯æ éã«è¡ãå¿ è¦ãããã¾ãã
ãªãã¸ã§ã¯ãã Object.prototype
ããç¶æ¿ããªãããã«ãããã¨ã§ããããã¿ã¤ãæ±ææ»æãé²ããã¨ãã§ãã¾ããæªæã®ããã¹ã¯ãªããã Object.prototype
ã«ããããã£ã追å ããå ´åããããã¿ã¤ãã null ã§ãããªãã¸ã§ã¯ã以å¤ã®ããã°ã©ã å
ã®ãã¹ã¦ã®ãªãã¸ã§ã¯ãã«ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã
const user = {};
// æªæã®ããã¹ã¯ãªãã
Object.prototype.authenticated = true;
// èªè¨¼ããã¦ããªãã¦ã¼ã¶ã¼ãééãããäºæãã¬è¡çº
if (user.authenticated) {
// æ©å¯ãã¼ã¿ã«ã¢ã¯ã»ã¹
}
JavaScript ã«ã¯ null
ãããã¿ã¤ããªãã¸ã§ã¯ããçæããçµã¿è¾¼ã¿ API ããããç¹ã«ãªãã¸ã§ã¯ããã¢ãããã¯ãªãã¼å¤ã®éåã¨ãã¦ä½¿ç¨ãã¦ãã¾ããä¾ãã°ã次ã®ãããªãã®ã§ãã
Object.groupBy()
ã®è¿å¤RegExp.prototype.exec()
ã®è¿å¤ã® groups
ããã³ indices.groups
ããããã£Array.prototype[Symbol.unscopables]
ï¼ãã¹ã¦ã® [Symbol.unscopables]
ãªãã¸ã§ã¯ãã¯ãããã¿ã¤ãã null
ã§ããï¼import.meta
import * as ns from "module";
ã¾ã㯠import()
ããåå¾ãããã®ããnull
ãããã¿ã¤ããªãã¸ã§ã¯ããã¨ããç¨èªã«ã¯ããããããã¿ã¤ããã§ã¼ã³ã« Object.prototype
ããªããªãã¸ã§ã¯ããå«ã¿ã¾ãããã®ãããªãªãã¸ã§ã¯ãã¯ãã¯ã©ã¹ã使ç¨ããã¨ãã« extends null
ã§ä½æãããã¨ãã§ãã¾ãã
ãªãã¸ã§ã¯ããæå¾ ããçµã¿è¾¼ã¿å¦çã®å¤ãã¯ãæåã«å¼æ°ããªãã¸ã§ã¯ãã«å¤æãã¾ãããã®å¦çãã¾ã¨ããã¨ä»¥ä¸ã®ããã«ãªãã¾ãã
undefined
ããã³ null
ã®å ´å㯠TypeError
ãçºçãã¾ããæ°å¤
ãæåå
ãè«çå¤
ãã·ã³ãã«
ãé·æ´æ°
ã®ããªããã£ãã¯ããããã対å¿ãããªãã¸ã§ã¯ãã©ããã¼ã«å¤æããã¾ããJavaScript ã§ã»ã¼åã广ãå¾ãã«ã¯ 2 ã¤ã®æ¹æ³ãããã¾ãã
Object.prototype.valueOf()
: Object.prototype.valueOf.call(x)
ã¯ãä¸è¨ã§èª¬æãããªãã¸ã§ã¯ãå¤æã®æ®µéã¨å
¨ãåãããã«ã x
ã夿ãã¾ããObject()
颿°: Object(x)
㯠x
ã夿ããããã«åãã¢ã«ã´ãªãºã ã使ç¨ãã¾ãããundefined
㨠null
㯠TypeError
ãçºçãã¾ããããªãã¸ã§ã¯ã夿ã使ç¨ããå ´æã«ã¯ä»¥ä¸ã®ãããªãã®ãããã¾ãã
for...in
ã«ã¼ãã® object
弿°ãArray
ã¡ã½ããã® this
å¤ãObject
ã®ã¡ã½ãããä¾ãã° Object.keys()
ã®å¼æ°ãthis
å¤ãããªããã£ãã¯ããã¯ã¹åããã null
㨠undefined
ã¯ã°ãã¼ãã«ãªãã¸ã§ã¯ãã«ç½®ãæããã¾ããããªããã£ã夿ã¨ã¯ç°ãªãããªãã¸ã§ã¯ã夿å¦ç㯠toString
ã¡ã½ããã valueOf
ã¡ã½ããã®ãããªã«ã¹ã¿ã ã³ã¼ããå¼ã³åºããªãã®ã§ãããèªä½ã¯ä½ãæ¹æ³ã§ç£è¦ãããã¨ã¯ã§ãã¾ããã
Object()
æ°ãã Object
ãªãã¸ã§ã¯ããçæãã¾ããããã¯æå®ãããå¤ã®ã©ããã¼ã§ãã
Object.assign()
1 å以ä¸ã®ã½ã¼ã¹ãªãã¸ã§ã¯ããããèªèº«ã®åæå¯è½ãªããããã£ã®å¤ããã¹ã¦ã¿ã¼ã²ãããªãã¸ã§ã¯ãã«ã³ãã¼ãã¾ãã
Object.create()
æå®ããããããã¿ã¤ããªãã¸ã§ã¯ãã¨ããããã£ãããæ°ãããªãã¸ã§ã¯ããçæãã¾ãã
Object.defineProperties()
æå®ãããè¨è¿°åã§è¨è¿°ãããååä»ãããããã£ããªãã¸ã§ã¯ãã¸è¿½å ãã¾ãã
Object.defineProperty()
æå®ãããè¨è¿°åã§è¨è¿°ãããè¤æ°ã®ååä»ãããããã£ããªãã¸ã§ã¯ãã¸è¿½å ãã¾ãã
Object.entries()
æå®ããããªãã¸ã§ã¯ãèªèº«ã®åæå¯è½ãªæååããããã£ã®ãã¹ã¦ã® [key, value]
ã®çµãå«ãé
åãè¿ãã¾ãã
Object.freeze()
ãªãã¸ã§ã¯ããåçµãã¾ããä»ã®ã³ã¼ããããããã£ãåé¤ããã夿´ããããããã¨ãã§ããªããªãã¾ãã
Object.fromEntries()
å復å¯è½ãª [key, value]
ã®çµããæ°ãããªãã¸ã§ã¯ããè¿ãã¾ãã(ãã㯠Object.entries
ã®éã§ãã)
Object.getOwnPropertyDescriptor()
ãªãã¸ã§ã¯ãã®ååä»ãããããã£ã«å¯¾å¿ããããããã£è¨è¿°åãè¿ãã¾ãã
Object.getOwnPropertyDescriptors()
ãªãã¸ã§ã¯ãèªèº«ã®ãã¹ã¦ã®ããããã£ã®è¨è¿°åãå«ããªãã¸ã§ã¯ããè¿ãã¾ãã
Object.getOwnPropertyNames()
æå®ãããªãã¸ã§ã¯ãèªèº«ã®åæå¯è½ããã³åæä¸å¯ãªãã¹ã¦ã®ããããã£ã®ååããé åã¨ãã¦è¿ãã¾ãã
Object.getOwnPropertySymbols()
æå®ãããªãã¸ã§ã¯ãä¸ã«ç´æ¥åå¨ãããã¹ã¦ã®ã·ã³ãã«ããããã£ãããªãé åãè¿ãã¾ãã
Object.getPrototypeOf()
æå®ããããªãã¸ã§ã¯ãã®ãããã¿ã¤ã (å
é¨ã® [[Prototype]]
ããããã£) ãè¿ãã¾ãã
Object.groupBy()
æå®ãããã¤ãã¬ã¼ã¿ã¼ã®è¦ç´ ããæå®ãããã³ã¼ã«ããã¯é¢æ°ãè¿ãæååå¤ã«å¾ã£ã¦ã°ã«ã¼ãåãã¾ããè¿ããããªãã¸ã§ã¯ãã¯ãã°ã«ã¼ããã¨ã«å¥åã®ããããã£ãæã¡ãã°ã«ã¼ãå ã®è¦ç´ ãæ ¼ç´ããé åãå«ã¿ã¾ãã
Object.hasOwn()
æå®ãããªãã¸ã§ã¯ãããæå®ããããããã£ãèªèº«ã®ããããã£ã¨ãã¦æã£ã¦ããå ´å㯠true
ãè¿ãããã®ããããã£ãç¶æ¿ããã¦ãããåå¨ããªãå ´å㯠false
ãè¿ãã¾ãã
Object.is()
2 ã¤ã®å¤ãåãå¤ã§ãããã©ãããæ¯è¼ãã¾ãã NaN
å¤ã¯ãã¹ã¦åããã®ã¨ãã¦æ±ããã¾ãï¼IsLooselyEqual
(==
) ããã³ IsStrictlyEqual
(===
) ã®ã©ã¡ãã¨ãç°ãªãã¾ãï¼ã
Object.isExtensible()
ãªãã¸ã§ã¯ãã®æ¡å¼µã許å¯ããã¦ãããã©ãããå¤å®ãã¾ãã
Object.isFrozen()
ãªãã¸ã§ã¯ããåçµããã¦ãããã©ãããå¤å®ãã¾ãã
Object.isSealed()
ãªãã¸ã§ã¯ããå°å°ããã¦ãããã©ãããå¤å®ãã¾ãã
Object.keys()
æå®ããããªãã¸ã§ã¯ãèªèº«ã®åæå¯è½ãªããããã£ã®ååããã¹ã¦å«ãé åãè¿ãã¾ãã
Object.preventExtensions()
ãªãã¸ã§ã¯ãã®ããããæ¡å¼µãææ¢ãã¾ãã
Object.seal()
ãªãã¸ã§ã¯ãã®ããããã£ãåé¤ããã»ãã®ã³ã¼ããææ¢ãã¾ãã
Object.setPrototypeOf()
ãªãã¸ã§ã¯ãã®ãããã¿ã¤ã (å
é¨ã® [[Prototype]]
ããããã£) ãè¨å®ãã¾ãã
Object.values()
ä¸ãããããªãã¸ã§ã¯ãèªèº«ã®åæå¯è½ãªæååããããã£ãã¹ã¦ã«å¯¾å¿ããå¤ãå«ãé åãè¿ãã¾ãã
ãããã®ããããã£ã¯ Object.prototype
ã§å®ç¾©ããã¦ããããã¹ã¦ã® Object
ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
Object.prototype.__proto__
鿍奍;
ãªãã¸ã§ã¯ããã¤ã³ã¹ã¿ã³ã¹åãããã¨ãã«ãããã¿ã¤ãã¨ãã¦ä½¿ç¨ãããªãã¸ã§ã¯ããæãã¾ãã
Object.prototype.constructor
ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ããã¬ã¼ã³ãª Object
ã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯ Object
ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ããä»ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãããããã® Constructor.prototype
ãªãã¸ã§ã¯ããã constructor
ããããã£ãç¶æ¿ãã¾ãã
Object.prototype.__defineGetter__()
鿍奍;
颿°ãããããã£ã«é¢é£ä»ãã¾ãããã®ããããã£ã«ã¢ã¯ã»ã¹ããã¨ããã®é¢æ°ãå®è¡ãã¦è¿å¤ãè¿ãããã«ãã¾ãã
Object.prototype.__defineSetter__()
鿍奍;
颿°ãããããã£ã«é¢é£ä»ããè¨å®ãããã¨ããããã£ã夿´ãã颿°ãå®è¡ããããã«ãã¾ãã
Object.prototype.__lookupGetter__()
鿍奍;
æå®ãããããããã£ã®ã²ãã¿ã¼é¢æ°ã¨ãã¦çµã³ä»ãããã颿°ãè¿ãã¾ãã
Object.prototype.__lookupSetter__()
鿍奍;
æå®ãããããããã£ã®ã»ãã¿ã¼é¢æ°ã¨ãã¦çµã³ä»ãããã颿°ãè¿ãã¾ãã
Object.prototype.hasOwnProperty()
ãªãã¸ã§ã¯ããããããã¿ã¤ããã§ã¼ã³ãéãã¦ç¶æ¿ããããã®ã§ã¯ãªããªãã¸ã§ã¯ãã®ç´æ¥ã®ããããã£ãæã£ã¦ãããã©ããã示ãè«çå¤ãè¿ãã¾ãã
Object.prototype.isPrototypeOf()
ãã®ã¡ã½ãããå¼ã³åºããããªãã¸ã§ã¯ãããæå®ããããªãã¸ã§ã¯ãã®ãããã¿ã¤ããã§ã¼ã³ã«ãããã©ããã示ãè«çå¤ãè¿ãã¾ãã
Object.prototype.propertyIsEnumerable()
æå®ããããããã£ãããã®ãªãã¸ã§ã¯ãã®åæå¯è½ãªèªåèªèº«ã®ããããã£ã§ãããã©ããã示ãè«çå¤ãè¿ãã¾ãã
Object.prototype.toLocaleString()
toString()
ãå¼ã³åºãã¾ãã
Object.prototype.toString()
ãã®ãªãã¸ã§ã¯ãã®æåå表ç¾ãè¿ãã¾ãã
Object.prototype.valueOf()
æå®ããããªãã¸ã§ã¯ãã®ããªããã£ãå¤ãè¿ãã¾ãã
次ã®ä¾ã§ã¯ãnew
ãã¼ã¯ã¼ãã«æ§ã
ãªå¼æ°ãæå®ãã¦ã空ã®ãªãã¸ã§ã¯ãã使ãã¦ãã¾ãã
const o1 = new Object();
const o2 = new Object(undefined);
const o3 = new Object(null);
Object() ã³ã³ã¹ãã©ã¯ã¿ã¼ãç¨ãã¦ããªããã£ããããããã®åã®ãªãã¸ã§ã¯ãã«å¤æ
Object()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ãã¦ãããªããã£ãå¤ã®ãªãã¸ã§ã¯ãã©ããã¼ã使ãã¾ãã
次ã®ä¾ã§ã¯ãè«çå¤
ã¨é·æ´æ°
ã®å¤ãæ ¼ç´ãããªãã¸ã§ã¯ãã§ãã夿° o1
㨠o2
ã使ãã¦ãã¾ãã
// const o1 = new Boolean(true) ã¨ç価
const o1 = new Object(true);
// BigInt() ã¯ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨ãã¦å¼ã³åºããªãã®ã§ç価ã§ã¯ãªã
// éæã®é¢æ°ã¨ãã¦å¼ã³åºããå ´åã¯ãªãã¸ã§ã¯ããçæããªã
const o2 = new Object(1n);
ãªãã¸ã§ã¯ãã®ãããã¿ã¤ã
Object.prototype
ã®æ¢åã®ã¡ã½ããã®åä½ã夿´ããã«ã¯ãæ¢åã®ãã¸ãã¯ã®åã¾ãã¯å¾ã§ç¬èªã®æ¡å¼µãå²ãå½¢ã§ã³ã¼ããæ¿å
¥ããããã«ãã¦ãã ãããä¾ãã°ããã® (ãã¹ãããã¦ããªã) ã³ã¼ãã¯ãçµã¿è¾¼ã¿ãã¸ãã¯ã誰ãã®æ¡å¼µæ©è½ãå®è¡ãããåã«ãæ¡ä»¶ä»ãã§ç¬èªã®ãã¸ãã¯ãå®è¡ãã¾ãã
ããã¯ã使ã£ã¦ãããã¿ã¤ãã夿´ããå ´åã¯ã颿°ã§ apply()
ãå¼ã³åºããã¨ã§ã this
ã¨å¼æ° (å¼ã³åºãç¶æ
) ãç¾å¨ã®åä½ã«æ¸¡ãã¾ãããã®ãã¿ã¼ã³ã¯ãNode.prototype
ã Function.prototype
ãªã©ãã©ããªãããã¿ã¤ãã«ã使ãã¾ãã
const current = Object.prototype.valueOf;
// ãããã㣠"-prop-value" ã¯æ¨ªæçã§ãåããããã¿ã¤ããã§ã¼ã³ä¸ã«
// ããã¨ã¯éããªãã®ã§ã Object.prototype ãä¿®æ£ãããã¨æãã¾ãã
Object.prototype.valueOf = function (...args) {
if (Object.hasOwn(this, "-prop-value")) {
return this["-prop-value"];
} else {
// ç§ã®ãªãã¸ã§ã¯ãã®ããã«ã¯è¦ããªãã®ã§ãç¾å¨ã®åä½ãã§ããéãåç¾ãã¦ã
// æ¢å®ã®åä½ã«ãã©ã¼ã«ããã¯ãã¾ãã
// apply ã¯ãä»ã®ããã¤ãã®è¨èªã«ããã "super" ã®ãããªåä½ããã¾ãã
// valueOf() ã¯å¼æ°ãåãã¾ããããä»ã®ããã¯ã«ãã£ã¦ã¯åãããããã¾ããã
return current.apply(this, args);
}
};
è¦å: çµã¿è¾¼ã¿ã³ã³ã¹ãã©ã¯ã¿ã¼ã® prototype
ããããã£ã夿´ãããã¨ã¯ãæªãç¿æ
£ã§ãããåæ¹äºææ§ãå±éºã«ããããã®ã§ãã
ãããã¿ã¤ãã«ã¤ãã¦ã¯ç¶æ¿ã¨ãããã¿ã¤ããã§ã¼ã³ã§è©³ãã説æããã¦ãã¾ãã
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ å ±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