2016-08-03 10 views
-1

I js natives Objekt mit einer neuen Funktion erweitern will dann diese Funktion exportieren, habe ich versucht, so etwas wie diesees6 wie native zu exportieren Objekt

export Object.prototype.renameProperty = function() { 
    console.log('do stuff') 
} 

ich unerwarteten Token Fehler bekam. Was ist der richtige Weg?

+0

Was ist der Zweck ist das? Warum definieren Sie es nicht einfach als eigenständige Funktion, weisen Sie es der Objekteigenschaft zu und exportieren Sie diese eigenständige Funktion –

+0

Lesen Sie die [Exportdokumentation] (http://www.ecma-international.org/ecma-262/6.0/# sec-exports) –

+0

Verwenden Sie einfach nicht 'export' und stellen Sie sicher, dass Sie dies vor jedem Code einfügen, der es verwendet. Dein Code wird gut funktionieren, bis du dich selbst töten willst. – naomik

Antwort

1

Der Grund für die Verwendung von Modulen in ES6 + ist, dass Sie die Prototypen von Objekten, die Sie nicht besitzen, nicht ändern müssen. Aber wenn man es auf diese Weise schreiben müssen, müssen Sie entweder nur den Code in der Datei erklären ohne Ausfuhr:

prototype.js

Object.prototype.renameProperty = function() { 
    console.log('do stuff') 
} 

und importieren Sie es in etwa so:

import "./prototype.js"; 

Oder wenn Sie wirklich brauchen beide es zum Prototyp hinzuzufügen und zu exportieren, dann:

prototype.js

export const renameProperty = Object.prototype.renameProperty = function() { 
    console.log('do stuff') 
}; 

und importieren Sie es in etwa so:

import {renameProperty} from "./prototype.js"; 
({}).renameProperty(); // do stuff 
renameProperty.bind({})(); // do stuff