2015-09-26 38 views
11

Làm cách nào để xuất chức năng ghi đè này để mô-đun nhập có thể kiểm tra xem chức năng đã được gọi chưa?Chức năng ghi đè xuất khẩu ES6

// util.js 
export function isPageload() { 
    return (!!(isPageload = function() { return false; })); 
} 

Khi tôi biên dịch rằng với Babel, tôi nhận được lỗi này:

Uncaught TypeError: (0 , _util2.default) is not a function 

Dưới đây là tương đương với ES5:

var isPageload = function() { 
    return (!!(isPageload = function() { return false; })); 
} 

console.log(isPageload()); // true 
console.log(isPageload()); // false 
+0

'let loaded = false;' then 'loaded = true;' trong nội dung hàm. – zerkms

+0

pertinently hơn, tại sao bạn sẽ viết này? Tại sao bạn cần tên hàm giống nhau trong quá trình xuất của bạn? –

+0

@ Mike'Pomax'Kamermans Cú pháp hiện tại sẽ cập nhật xuất là một hàm trả về false thay vì hàm gốc, giống như phiên bản ES5. – loganfsmyth

Trả lời

26

Các .default trong các lỗi làm cho nó rõ ràng rằng bạn đang đang thực hiện

import isPageload from 'foo'; 

khi bạn có thể muốn

import {isPageload} from 'foo'; 

từ

export function isPageload() { 

tạo ra một tên xuất khẩu, không phải là một xuất khẩu mặc định, và xuất khẩu mặc định sống ràng buộc cập nhật currently does not work in Babel.

Phương pháp tiếp cận của bạn đối với vấn đề này có vẻ hơi thay đổi. Tại sao không làm

+0

Đúng, các dấu ngoặc còn thiếu đã thực hiện thủ thuật. Cảm ơn vì đã giải thích. – cantera

+1

Đây là vàng. Cảm ơn. – shongololo

Các vấn đề liên quan