2017-05-19 2 views
-2

작은 문제가 있습니다. 나는() object.create 사용하는 object.setprototypeof() 또는이 목록에있는 모든 기능을 수없는 것 :Javascript에 누락 된 것이 있습니까?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object

나는군요 메시지 "기능을 정의는"때 스크립트 object.create()를 사용하려고합니다.

저는 주로 온라인에서 발견 된 After Effects 용 사용자 지정 JS 스크립트가 필요하며 Adobe ExtendScript Toolkit, Monodevelop 및 VS와 같은 다른 스크립트 편집기의 장점을 시험해 보았습니다.

라이브러리가 없습니까? 나는 그것이 나에게 무엇인가 줄 것 인 지 알기 위해 최신 자바 sdk를 설치하려고 노력했다. 그러나 나는 어떤 운도 가지지 않고 있었다. 누군가 나를 도울 수 있습니까?

+4

는 대소 문자를 구분하기 때문에 Object.create를 사용하여 시도 지원하지 않습니다. – Ozan

+0

코드를 게시 해주십시오. 구문 문제 인 것 같습니다. – Charles

+0

재생 해 주셔서 감사합니다. 다시 코드는 다른 프로그램에서 After Effects로 애니메이션을 내보내도록 다른 사람이 작성했습니다. 링크 : http://n4te.com/x/1964-DRdD.txt – RandomTK

답변

0

Object.createObject.setPrototypeOf을 모두 사용할 수 있습니다.

수정 ExtendScript 실제로 Object.create를 들어, MDN에서 볼 수 있듯이 버전 5

에서 사용할 수있는 모든 자바 스크립트 기능이없는 ECMA 스크립트 3, 사용 :

초기 정의를. JavaScript 1.8.5에서 구현되었습니다.

그리고 Object.setPrototypeOf에 대한

: 초기 정의는 새로운 기능과 같은 Object.create을 지원하는 polyfill을 만들 수 있습니다, 때로는 MDN 그 polyfills을 제공하는 많은 기능을 위해, 2015 년

그러나 ECMA 스크립트에 있었다 :

Object.create polyfill :

if (typeof Object.create != 'function') { 
    Object.create = (function(undefined) { 
    var Temp = function() {}; 
    return function (prototype, propertiesObject) { 
     if(prototype !== Object(prototype)) { 
     throw TypeError(
      'Argument must be an object, or null' 
     ); 
     } 
     Temp.prototype = prototype || {}; 
     var result = new Temp(); 
     Temp.prototype = null; 
     if (propertiesObject !== undefined) { 
     Object.defineProperties(result, propertiesObject); 
     } 

     // to imitate the case of Object.create(null) 
     if(prototype === null) { 
     result.__proto__ = null; 
     } 
     return result; 
    }; 
    })(); 
} 

Object.setPrototypeOf polyfill :

Object.setPrototypeOf = Object.setPrototypeOf || function(obj, proto) { 
    obj.__proto__ = proto; 
    return obj; 
} 

P.S. @Ozan으로

  • 는 의견에 말한다 :

    는 대소 문자를 구분하기 때문에 Object.create를 사용하여 시도.

  • 일부 기능의 경우 해당 기능을 지원하기 위해 polyfill을 사용할 수 없습니다 (하지만 babel과 같은 증발기 사용 가능).

  • MDN의 polyfills 중 일부는 ECMA 스크립트 3

관련 문제