대상(7) 관련 속성 방법 보충

2044 단어

구조기

  • 속성: constructor
  • 값: 이와 관련된 구조 함수
  • 주의점:constructor는 원형 대상에 있는 것으로 우리는 대상을 통과한다.constructor가 접근한 값은 사실 원형 대상에 대응하는 값이다
  • 구조기

    --proto--


    만약 구조 함수를 사용하여 대상을 만든다면, 창설된 대상 중 하나의proto-바늘은 구조 함수에 대응하는 원형 대상을 가리키며 원형 대상에 접근하는 방법 (1) 구조 함수를 가리킨다.prototype(2) 객체. -proto--주의점: 정식 개발에서 정식 코드에서 이 속성을 사용하지 마십시오. 이 속성은 ECMA 표준에 있는 것이 아니기 때문에 일부 브라우저 업체가 프로그래머의 개발과 디버깅을 편리하게 하기 위해 제공하는 속성으로 표준적이지 않습니다.
    
        function Person(){}
        Person.prototype.des = "des";
        var p1 = new Person();
    
        console.log(Person.prototype == p1.__proto__);  //true
    
    

    hasOwnProperty

  • in 키워드001 검사 대상에 지정된 속성이 있는지(실례 속성+원형 속성) 002 스트리밍 대상 문법:'속성'in 대상
  • hasOwnProperty 역할: 대상에 지정된 속성(실례 속성) 문법이 있는지 검사: 대상.hasOwnProperty(속성)
  • 수요: 특정한 속성이 원형 속성인지 아닌지를 판단해야 하며, 단지 원형 속성 01일 뿐이다. 이 속성은 02가 존재하고 실례 속성이 아니다
  • 
        Object.prototype.des = "des";
        Object.prototype.age = "des";
        var obj = {name:"zs",age:20};
    
    
        console.log("name" in obj);
        console.log(obj.hasOwnProperty("name"));
        console.log(obj.des);
    
    
        //in   hasOwnProperty
        console.log("des" in obj);              //true
        console.log(obj.hasOwnProperty("des")); //false
    
        function isOnlyPrototypeProperty(propertyName,obj)
        {
            return (propertyName in obj) && !obj.hasOwnProperty(propertyName);
        }
    
        // 
        console.log(isOnlyPrototypeProperty("name", obj));
        console.log(isOnlyPrototypeProperty("des", obj));
        console.log(isOnlyPrototypeProperty("age", obj));  //false
    
    

    isPrototypeOf


    isPrototypeOf 원형 대상인지 아닌지를 판단하는 instanceof는 특정한 대상이 지정한 구조 함수의 실례 대상인지 판단합니다
    
        function Person(){};
        var demo = {};
        var demo1 = {};
        Person.prototype = demo;
        Person.prototype.constructor = Person;
    
        var p1 = new Person();
    
        // 
        console.log(demo1.isPrototypeOf(p1));
    
    
    

    좋은 웹페이지 즐겨찾기