2015-12-13 1 views
2

Я начал работать с Aurelia с ES7, и я не могу понять, как сделать функцию общедоступной, когда ей нужен список аргументов.es6 accessor для функции класса экспорта

Это работает:

export class dummy{ 
    get doSomething(){ 
    return "something"; 
    } 
} 

dummy.doSomething() 

НО, если я изменить функцию, чтобы иметь список аргументов, я получаю сообщение об ошибке:

get doSomething(x){ 
    ... 
ERR: A 'get' accessor cannot have parameters. 

Я попробовал множество вещей, которые не работали и В Google это ничего не происходит. Как объявить публичную функцию в экспортированном классе, который принимает аргумент и возвращает значение?

Спасибо.

+1

Там нет ничего конкретного здесь о ES7. Это все ES6. –

+0

Помните, что манекен - это класс, а не экземпляр объекта. Используйте ключевое слово 'new' для создания нового экземпляра класса. например 'var instance = new dummy();' тогда вы можете получить доступ к свойству 'var foo = instance.doSomething;' – evolutionxbox

ответ

1

get объявляет getter. Они доступны как обычные свойства (т.е. не методы):

var foo = instance.doSomething; 

Вот почему добытчики не могут иметь параметры.

Если вы не хотите, но хотите вместо него метод, удалите его:

export class dummy{ 
    doSomething(x){ 
    return "something"; 
    } 
} 

Если вы просто использовать класс как «метод мешка», то есть вы не планируете создать несколько экземпляров из этого, использовать объект вместо:

export var dummy = { 
    doSomething(x){ 
    return "something"; 
    } 
}; 
+0

Это дает мне «doSomething не функция» – user441058

+0

Как вы пытаетесь вызвать метод? 'dummy.doSomething() 'не будет работать, поскольку ** класс ** не имеет такого метода. ** экземпляр ** класса имеет: 'var instance = new dummy(); instance.doSomething() '. Или, как я уже сказал, вместо этого используйте объект. –

+0

Ответ valicheck выше показывает, как я использую его с помощью оператора import {Dummy}. К сожалению, его ответ тоже не работает. Я думал, что это будет легкий ответ. LOL – user441058

0

Некоторые примеры манекена в ES6:

dummy.js

export class Dummy{ 
    get myGetter() { 
    return '456' 
    } 
} 

Dummy.doSomething = (x) => { 
    return "something"; 
} 

затем

import {Dummy} from 'dummy' 
console.log(Dummy.doSomething(123)); // => "something" 
let myDummy = new Dummy(); 
console.log(myDummy.myGetter); // => "456" 
+0

В dummy.js, добавив новый код внизу, «Dummy не определен». Если я переведу его в блок export {}, он говорит: «это можно использовать только в ts-файлах». Если я поместил его в блок export {} с этим.doSomething ... он говорит «неожиданный токен» – user441058

+0

вы используете машинописный шрифт? мой пример работает для простых es6 js с babel – valichek

 Смежные вопросы

  • Нет связанных вопросов^_^