2015-02-05 3 views
0

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

До сих пор у меня есть:

/Class1.js 
/folder/Class2.js 

Class2.js:

function Class2(n) { 
this.number = n; 
} 

Class1.js:

var instance = new Class2(1); 

Это не сработало, так что я пытался требовать класс:

require('./folder/Class2.js'); 

или

var newClass = new require('./folder/Class2.js'); 
var instance = new newClass(1); 

Ни работал, и я получаю ошибку:

Class2 is not defined

Нет онлайн примеры, такие как this не не пошли в детали, почему это не работает так же не- рабочий материал.

+0

'class' является зарезервированным идентификатором, поэтому вы не можете иметь переменную с именем' class'. Фактически, в [ECMAScript 6] (http://people.mozilla.org/~jorendorff/es6-draft.html#sec-class-definitions) он используется для создания классов. – Oriol

+0

Это имена примеров, поэтому мне не нужно проходить через все папки и имена классов, которые они на самом деле вызываются и находятся. – Greg

ответ

1

Добавить module.exports = Class2; в конец вашего класса 2 файла. Значение, которое вы назначили, будет возвращено, когда вам понадобится этот файл. Если вы ничего не экспортируете, вы ничего не получите, когда захотите.

0

Это также может быть вызвано порядком определений классов JS в вашем HTML. Возможно, вы пытаетесь ссылаться на Class2 в Class1 до того, как Class2 существует.

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