2016-08-03 96 views
-1

我想延長JS原生對象到一個新的功能,然後導出功能,我想這樣的事情ES6如何導出原生對象

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

我得到了意外的標記錯誤。什麼是正確的方式來做到這一點?

+0

這樣做有什麼目的?爲什麼不將它定義爲獨立功能,將其分配給對象屬性,並導出該獨立功能 –

+0

閱讀[export documentation](http://www.ecma-international.org/ecma-262/6.0) /#sec-exports) –

+0

只是不要使用'export',並確保在使用它的代碼之前包含它。你的代碼會正常工作,直到你想自殺。 – naomik

回答

1

在ES6 +中使用模塊的重點在於您不需要修改不屬於您自己的對象的原型。但是如果你必須這樣寫吧,你需要要麼只是申報文件中的代碼沒有出口:

的prototype.js

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

,並導入它像這樣:

import "./prototype.js"; 

或者,如果你真的需要既把它添加到原型和導出,然後:

的prototype.js

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

,並導入它像這樣:

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