class A { constructor(a, b = ‘bbb‘, c = 1) { this.a = a; this.b = b; this.c = c; } }
const desc3 = Object.getOwnPropertyDescriptor(A.prototype, ‘constructor‘);
console.info(desc3);
{ value: [Function: A], writable: true, enumerable: false, configurable: true }
console.info(Object.getOwnPropertyDescriptors(desc3.value));
console.info(Object.getOwnPropertyDescriptors(A.prototype.constructor));
{ length: { value: 1, writable: false, enumerable: false, configurable: true }, prototype: { value: A {}, writable: false, enumerable: false, configurable: false }, name: { value: ‘A‘, writable: false, enumerable: false, configurable: true } }
console.info(A.prototype.constructor.name);
console.info(undefined == new A().prototype);
const instance = new A(); const objProto = Object.getPrototypeOf(instance); console.info(objProto === A.prototype); console.info(Object.getOwnPropertyDescriptors(objProto)); console.info(Object.getOwnPropertyDescriptors(objProto.constructor));
true { constructor: { value: [Function: A], writable: true, enumerable: false, configurable: true } } { length: { value: 1, writable: false, enumerable: false, configurable: true }, prototype: { value: A {}, writable: false, enumerable: false, configurable: false }, name: { value: ‘A‘, writable: false, enumerable: false, configurable: true } }
console.info(objProto.constructor.name);
原文:https://www.cnblogs.com/popgis/p/11796077.html