Twitter hashtag: #esspec
便利ツール
時事ネタ
自己紹介 (近況報告)
syumai syumai.icon
Go / TSを書いて暮らしてます
MCPを触ってます
iwatsurut
とくに、イベントもなく過ごしています。
仕事で、Go で Web システムを作ることになった。想定よりも複雑で、ちょとこまった。
igrep(山本悠滋)
荷解がまだ完全には終わっておらず、ドライヤーや爪切りなど見つからないものが...
avante.nvimがやっと動いたが、やはりまだこなれない感じ
前回のあらすじ
今回の範囲
Object.getOwnPropertyDescriptor
code:js
Object.getOwnPropertyDescriptor(Array.prototype, Symbol.iterator);
/*
{
writable: true,
enumerable: false,
configurable: true
}
*/
Object.getOwnPropertyDescriptors
Array.prototypeから見つかったSymbol.unscopables
なぜか configurable: true だった
Object.
code:js
console.log(Object.getOwnPropertyNames(Array.prototype));
console.log(Object.getOwnPropertySymbols(Array.prototype));
/*
[
'length', 'constructor', 'at',
'concat', 'copyWithin', 'fill',
'find', 'findIndex', 'findLast',
'findLastIndex', 'lastIndexOf', 'pop',
'push', 'reverse', 'shift',
'unshift', 'slice', 'sort',
'splice', 'includes', 'indexOf',
'join', 'keys', 'entries',
'values', 'forEach', 'filter',
'flat', 'flatMap', 'map',
'every', 'some', 'reduce',
'reduceRight', 'toLocaleString', 'toString',
'toReversed', 'toSorted', 'toSpliced',
'with'
]
*/
Object.getPrototypeOf
code:js
console.log(Object.getPrototypeOf([]));
console.log(Object.getPrototypeOf({}));
class C1 {};
console.log(Object.getPrototypeOf(new C1()));
console.log(Object.getPrototypeOf(C1));
class C2 extends C1 {};
console.log(Object.getPrototypeOf(new C2()));
console.log(Object.getPrototypeOf(C2));
/*
Object(0) []
{}
{}
C1 {}
*/
【令和最新版】関数ベースのclass継承
code:js
function F1() {}
F1.prototype.m = function () {
console.log("called m!");
};
new F1().m();
function F2() {}
Object.setPrototypeOf(F2.prototype, F1.prototype);
new F2().m();
called m!
called m!
Object.groupBy
code:js
// Object.groupBy(undefined, () => {});
// TypeError: Object.groupBy called on null or undefined
// Object.groupBy(null, () => {});
// TypeError: Object.groupBy called on null or undefined
// Object.groupBy([], 1);
// TypeError: 1 is not a function
// itemsはiteratorならOK!なので、generatorとかでもいい
return k % 2; // 0 or 1 がkeyとして返る
});
/*
* {
* }
*/
console.log(obj);
switch (item) {
case "a":
return 1;
case "b":
return "1";
case "c":
return 1.0;
}
});
console.log(obj2);
return k % 2 === 0 ? +0 : -0; // 0 or 1 がkeyとして返る
});
console.log(m);
/*
*/