Baseline Widely available
get
æ§æã¯ããªãã¸ã§ã¯ãã®ããããã£ã颿°ã«çµã³ã¤ããããããã£ãåç
§ãããæã«é¢æ°ãå¼ã³åºãããããã«ãã¾ãã
const obj = {
log: ["a", "b", "c"],
get latest() {
return this.log[this.log.length - 1];
},
};
console.log(obj.latest);
// Expected output: "c"
æ§æ
{get prop() { /* ... */ } }
{get [expression]() { /* ... */ } }
弿°
prop
ä¸ãããã颿°ã«çµã³ä»ããããããããã£ã®åå
expression
ECMAScript 2015 ãããç®åºãããããããã£å (computed property name) ã®å¼ã使ç¨ãã¦é¢æ°ã«çµã³ä»ãããã¨ãã§ãã¾ãã
æã¨ãã¦ãåçã«è¨ç®ããå¤ãè¿ãããããã£ã«ã¢ã¯ã»ã¹ã許å¯ããã»ããæã¾ããå ´åããæç¤ºçãªã¡ã½ãããå¼ã³åºããã¨ãªãå é¨å¤æ°ã«ç¶æ ãåæ ããããå ´åãããã¾ãã JavaScript ã§ã¯ãã²ãã¿ã¼ã使ã£ã¦ãããè¡ããã¨ãå¯è½ã§ãã
ããããã£ã«çµã³ä»ããããã²ãã¿ã¼ã¨ãå®éã«å¤ãæã¤ããããã£ãåæã«æã¤ãã¨ã¯ã§ãã¾ããããã²ãã¿ã¼ã¨ã»ãã¿ã¼ãçµã¿åããã¦ä½¿ç¨ããä¸ç¨®ã®æ¬ä¼¼ããããã£ã使ãããã¨ã¯ã§ãã¾ãã
get
æ§æã使ç¨ããå ´åã¯ã以ä¸ã®ãã¨ã«æ³¨æãã¦ãã ããã
æ°å¤ã¾ãã¯æååã«ããèå¥åãæã¤ãã¨ãã§ãã¾ãã
弿°ã®æ°ã¯ 0 ã§ãªããã°ãªãã¾ããï¼è©³ãã㯠Incompatible ES5 change: literal getter and setter functions must now have exactly zero or one arguments ãã覧ãã ããï¼ã
1 ã¤ã®ãªãã¸ã§ã¯ããªãã©ã«ä¸ã«ãå¥ã® get
ãç¾ãã¦ã¯ããã¾ãããä¾ãã°æ¬¡ã®ãããªãã¨ã¯ã§ãã¾ããã
{
get x() { }, get x() { }
}
ãã¼ã¿é ç®ã¨åãååã®ããããã£ãåºç¾ãã¦ã¯ããã¾ãããä¾ãã°æ¬¡ã®ãããªãã¨ã¯ã§ãã¾ããã
以ä¸ã®ä¾ã§ã¯ latest
æ¬ä¼¼ããããã£ããªãã¸ã§ã¯ã obj
使ãã log
å
ã®æå¾ã®é
åã¢ã¤ãã ãè¿ãã¾ãã
const obj = {
log: ["example", "test"],
get latest() {
if (this.log.length === 0) return undefined;
return this.log[this.log.length - 1];
},
};
console.log(obj.latest); // "test"
latest
ã«å¤ã代å
¥ãããã¨ãã¦ãã夿´ã¯ãããªããã¨ã«æ³¨æãã¦ä¸ããã
delete
æ¼ç®åã«ããã²ãã¿ã¼ã®åé¤
ã²ãã¿ã¼ãåé¤ãããå ´åã¯ã delete
ã使ç¨ãã¦ãã ããã
defineProperty
ã使ç¨ããã²ãã¿ã¼ã®å®ç¾©
æ¢åã®ãªãã¸ã§ã¯ãã«ä»»æã®ã¿ã¤ãã³ã°ã§ã²ãã¿ã¼ã追å ããã«ã¯ã Object.defineProperty()
ã使ç¨ãã¾ãã
const o = { a: 0 };
Object.defineProperty(o, "b", {
get: function () {
return this.a + 1;
},
});
console.log(o.b); // getter ãå®è¡ãa + 1 ãç®åºãã (çµæã¯ 1)
ç®åºãããããããã£åã®ä½¿ç¨
const expr = "foo";
const obj = {
get [expr]() {
return "bar";
},
};
console.log(obj.foo); // "bar"
éçã²ãã¿ã¼ã®å®ç¾©
class MyConstants {
static get foo() {
return "foo";
}
}
console.log(MyConstants.foo); // 'foo'
MyConstants.foo = "bar";
console.log(MyConstants.foo); // 'foo' ã§ããéçã²ãã¿ã¼ã®å¤ã¯å¤æ´ã§ãã¾ãã
ã¹ãã¼ã / èªå·±æ¸ãæã / é
å»¶ã²ãã¿ã¼
ã²ãã¿ã¼ã¯ãªãã¸ã§ã¯ãã®ããããã£ãå®ç¾©ããææ®µãæä¾ãã¾ãããã¢ã¯ã»ã¹ãããã¾ã§ããããã£ã®å¤ãè¨ç®ãã¾ãããã²ãã¿ã¼ã¯å¤ãè¨ç®ããã³ã¹ãããå¤ãå¿ è¦ã«ãªãã¾ã§å éããã¾ããå¤ãå¿ è¦ã§ãªããã°ããã®ã³ã¹ããè² æ ãã¾ããã
ããããã£ã®å¤ã®è¨ç®ãå éããããå¾ã®ã¢ã¯ã»ã¹ã®ããã«ãã£ãã·ã¥ããããã®ä»å çãªæé©åæè¡ããã¹ãã¼ãï¼ã¾ã㯠ã¡ã¢åï¼ã²ãã¿ã¼ã§ããåãã¦ã²ãã¿ã¼ã«ã¢ã¯ã»ã¹ãããã¨ãã«ãå¤ãè¨ç®ãã¦ãã£ãã·ã¥ãã¾ãã以éã®ã¢ã¯ã»ã¹ã§ã¯åè¨ç®ããã«ããã£ãã·ã¥ããå¤ãè¿ãã¾ããããã¯æ¬¡ã®ãããªç¶æ³ã§å½¹ã«ç«ã¡ã¾ãã
ã¡ã¢: å¤ãå¤ããã¨è¦è¾¼ã¾ããããããã£ã§ãé å»¶ã²ãã¿ã¼ã使ç¨ãã¦ã¯ããã¾ãããã²ãã¿ã¼ãé å»¶ã§ããå ´åãå¤ãåè¨ç®ããªãããã§ãã
ãªããã²ãã¿ã¼ã®æ¬è³ªã¯ãé å»¶ãããã¡ã¢åãã§ã¯ããã¾ããããã®åä½ãæãå ´åããã®æè¡ãå®è£ ããå¿ è¦ãããã¾ãã
以ä¸ã®ä¾ã§ã¯ããªãã¸ã§ã¯ããèªèº«ã®ããããã£ã¨ãã¦ã²ãã¿ã¼ãæã£ã¦ãã¾ããããããã£ãåå¾ããã¨ãããããã£ã¯ãªãã¸ã§ã¯ãããåé¤ãããå¾ã«å追å ããã¾ããããã®ã¨ãæé»çã«ãã¼ã¿ããããã£ã¨ãã¦è¿½å ããã¾ããæçµçã«ãå¤ãè¿ããã¾ãã
get notifier() {
delete this.notifier;
return this.notifier = document.getElementById('bookmarked-notification-anchor');
},
get
㨠defineProperty
get
ãã¼ã¯ã¼ã㨠Object.defineProperty()
ã®ä½¿ç¨ã¯ä¼¼ãçµæã«ãªãã¾ããã classes
ä¸ã§ä½¿ç¨ããå ´åã¯å¾®å¦ãªéããããã¾ãã
get
ã使ç¨ããå ´åã¯ãããããã£ã¯ã¤ã³ã¹ã¿ã³ã¹ã®ãããã¿ã¤ãã«å®ç¾©ãããã®ã«å¯¾ãã Object.defineProperty()
ã使ç¨ããå ´åã¯ãããããã£ã¯é©ç¨ãããã¤ã³ã¹ã¿ã³ã¹ã«å®ç¾©ããã¾ãã
class Example {
get hello() {
return "world";
}
}
const obj = new Example();
console.log(obj.hello);
// "world"
console.log(Object.getOwnPropertyDescriptor(obj, "hello"));
// undefined
console.log(
Object.getOwnPropertyDescriptor(Object.getPrototypeOf(obj), "hello"),
);
// { configurable: true, enumerable: false, get: function get hello() { return 'world'; }, set: undefined }
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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