> 웹 프론트엔드 > JS 튜토리얼 > 자바스크립트 객체를 생성하는 새로운 방법 Object.create()_javascript 기술

자바스크립트 객체를 생성하는 새로운 방법 Object.create()_javascript 기술

WBOY
풀어 주다: 2016-05-16 15:22:53
원래의
1334명이 탐색했습니다.

Object.create()란 무엇인가요?
Object.create(proto [, PropertiesObject ])는 E5에서 제안된 새로운 객체 생성 방법입니다. 첫 번째 매개변수는 상속할 프로토타입입니다. 두 번째 매개변수는 null을 전달할 수 있습니다. 매개변수 매개변수는 객체의 속성 설명자입니다. 이 매개변수는 선택 사항입니다.
예:

function Car (desc) {
  this.desc = desc;
  this.color = "red";
}
 
Car.prototype = {
  getInfo: function() {
   return 'A ' + this.color + ' ' + this.desc + '.';
  }
};
//instantiate object using the constructor function
var car = Object.create(Car.prototype);
car.color = "blue";
alert(car.getInfo());

로그인 후 복사

결과는 다음과 같습니다.정의되지 않은 파란색

1. PropertiesObject 매개변수에 대한 자세한 설명: (기본값은 false)
데이터 속성:

  • writable : 임의로 쓸 수 있는지 여부
  • 구성 가능: 삭제 가능 여부 및 수정 가능 여부
  • 열거 가능:
  • 에서 for를 사용하여 열거할 수 있는지 여부
  • 값: 값

액세스 속성:

  • get(): 액세스
  • set(): 설정

2. 예시: 예시를 보시면 사용법을 아실 수 있습니다.

<!DOCTYPE html>
<html>
<head>
  <title>yupeng's document </title>
  <meta charset="utf-8"/>
</head>
<body>
  <script type="text/javascript">

    var obj = {

      a:function(){
        console.log(100)
      },
      b:function(){
        console.log(200)
      },
      c:function(){
        console.log(300)
      }

    }

    var newObj = {};

    newObj = Object.create(obj,{
      t1:{
        value:'yupeng',
        writable:true
      },
      bar: {
        configurable: false,
        get: function() { return bar; },
        set: function(value) { bar=value }
      }
      
    })

    console.log(newObj.a());
    console.log(newObj.t1);
    newObj.t1='yupeng1'
    console.log(newObj.t1);
    newObj.bar=201;
    console.log(newObj.bar)
    
    function Parent() { }
    var parent = new Parent();
    var child = Object.create(parent, {
       dataDescriptor: {
        value: "This property uses this string as its value.",
        writable: true,
        enumerable: true
       },
       accessorDescriptor: {
        get: function () { return "I am returning: " + accessorDescriptor; },
        set: function (val) { accessorDescriptor = val; },
        configurable: true
       }
      });

    child.accessorDescriptor = 'YUPENG';
    console.log(child.accessorDescriptor);



    var Car2 = function(){
      this.name = 'aaaaaa'
    } //this is an empty object, like {}
    Car2.prototype = {
     getInfo: function() {
      return 'A ' + this.color + ' ' + this.desc + '.';
     }
    };

    var newCar = new Car2();
     
    var car2 = Object.create(newCar, {
     //value properties
     color:  { writable: true, configurable:true, value: 'red' },
     //concrete desc value
     rawDesc: { writable: true, configurable:true, value: 'Porsche boxter' },
     // data properties (assigned using getters and setters)
     desc: { 
      configurable:true, 
      get: function ()   { return this.rawDesc.toUpperCase(); },
      set: function (value) { this.rawDesc = value.toLowerCase(); } 
     }
    }); 
    car2.color = 'blue';
    console.log(car2.getInfo());
    car2.desc = "XXXXXXXX";
    console.log(car2.getInfo());
    console.log(car2.name);



  </script>
</body>
</html>

로그인 후 복사

결과는 다음과 같습니다.
100
유펭
유펭1
201
돌아왔습니다: YUPENG
파란색 포르쉐 박스터
파란색 XXXXXXXX
아아아아아

위 내용은 JavaScript의 새로운 객체 생성 방법인 Object.create()에 대한 자세한 소개입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿