이러한 조건에서 new Object
과 new fn
의 차이를 어떻게 확인할 수 있습니까?새 개체와 새 fn의 차이 확인
var fn = function(){};
fn.prototype = {};
- 가 IE 나 오페라에없는 것처럼 당신은
__proto__
또는Object.getPrototypeOf
기존에 의존하지 않을 수 있습니다. - 이 솔루션은 과 같이 정적으로을 사용할 수 없습니다.
Object.getPrototypeOf
을 구현하는 것이 좋습니다.
필요하지 않음 : 솔루션이 다른 프레임에서 객체와 함께 작동 및 기능 직렬화를 사용하지 않는 경우 그것은 좋은 것입니다. 지금까지 내가 당신의 문제가 ES3으로 해결하는 것은 불가능 알고
var fn = function(){};
fn.prototype = {};
var x = new fn,
y = new Object;
fn = null; // prohibit static reference to fn
// define your detection function here
function isNewObject(obj) {
};
alert(isNewObject(x) !== isNewObject(y) ? "pass" : "fail");
당신은 foo가 SomeClass의 인스턴스인지, 아니면 동일한 속성을 가진 개체인지 알고 싶습니까? –
나는 이것이 가능하다고 생각하지 않는다. –
@gs __proto__ 또는 Object.getPrototypeOf를 사용하여 가능합니다.하지만 브라우저 간 호환이 아닙니다. –