기능 재검토(프로토타입 아님) 🤥
사용자 지정 속성이 있는 함수
function aFunction() {
this.someKey = "someValue";
}
aFunction.customKey = "customValue"
이것은 대부분의 경우 런타임 바인딩이므로 someKey는 aFunction 또는 aFunction.prototype의 속성이 아닙니다.
접두사 custom은 이름, 호출자 등과 같은 함수에 있는 기본 속성과 구별하기 위해 선택되었습니다.
이 문서에서는 customKey 및 customValue 쌍을 사용자 지정 속성이라고 합니다.
생성자는 함수이기 때문에 프로토타입도 있고 재귀는 영원히 계속됩니다. [[Prototype]] 속성은 개체의 실제 복사본이 아니라 링크일 뿐임을 기억하십시오.
사용자 지정 속성은 생성자에서 사용할 수 있지만 프로토타입에서는 사용할 수 없습니다.
사례
let aInstance = new aFunction()
console.log(aInstance)
aInstance의 [[Prototype]]이 aFunction.prototype이기 때문에 aFunction의 커스텀 속성은 aInstance의 [[Prototype]]에 존재하지 않습니다.
원기
맞춤 속성
생성자 속성
인스턴스의 생성자 속성은
aInstance.constructor =
를 사용하여 변경할 수 있고 부모의 생성자 속성은 Object.getPrototypeOf(aInstance).constructor
를 사용하여 변경할 수 있습니다. 따라서 인스턴스의 생성자를 확인하는 대신 instanceof 연산자를 사용하십시오.
Reference
이 문제에 관하여(기능 재검토(프로토타입 아님) 🤥), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rounakcodes/revisiting-functions-not-prototypes-253i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)