2013-09-02 4 views
2

Итак, я рассмотрел другие вопросы, подобные этому, и они на самом деле не ответили на вопросы.Внешние функции вызова Javascript из другого внешнего файла javascript

Вкратце: я работал с HTML, Java, VB и любым другим языком, используемым MIRC (это было чуть менее 10 лет).

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

Но, с html/javascript, я не уверен, как вызвать функцию из одного внешнего .js-файла в другой.

Предположим: я хочу создать класс игрока, который я могу вызывать в любое время, и использовать его в «основном» .js-файле, который использует эти функции из этого класса внутри другой функции. Например.

Если бы я был

function isDead() { 
if (health < 10 || energy < 10) 
{ 
return dead = 'true'; 
    } 
    else { return dead; } 
} 

в игроке .js файла, и в основном, у меня был.

function fight() { 
if (isDead() == 'true') 
{ 
    energy -= 10; 
    health -= 10; 
    Swords(); 
} 


document.getElementById("energy").innerHTML = energy; 
document.getElementById("health").innerHTML = health; 
document.getElementById("sword").innerHTML=sword; 

} 

В item.js я имел

var swordDamage = 0; 

function Swords(){ 
if (swordDamage < 3) 
swordDamage +=1; 
else 
return sword -=1; 
} 

(Разум вы это на самом деле работает (я не проверял мечи() еще, как я только что сделал это на этот вопрос.)

.

есть ли конкретный способ мне нужно призвать функции из других файлов .js в файл main.js

пример: main.function();

или мне лучше сохранить их как html-документ и написать ничего, кроме скрипта, чтобы обойти это?

Спасибо за ответ!

+0

Возможно, изучите некоторые основы использования объектов javascript. В javascript нет классов, есть объекты со свойствами и наследования прототипов, которые можно использовать как классы.Вам гораздо лучше делать глобальные переменные, такие как * здоровье *, * энергия *, * мертвые * и т. Д. Свойства экземпляров, а затем использовать геттеры и сеттеры для настройки значений. Что касается размещения кода в отдельных файлах, вы можете сделать это в среде разработки, но более эффективно иметь весь код в одном файле, чем распространять его через файлы mulitple. Если он находится в нескольких файлах, они должны быть загружены в правильном порядке. – RobG

ответ

6

Я пришел из той же среды, в которой вы пришли. Я сделал курс javascript, который мне очень помог, codeacademy.com.

Ну, я должен реализовать свой образец так:

fighter.js

function Fighter(){ 
    this.health = 100; 
    this.energy = 100; 

    this.isDead = function() { 

     if (health < 10 || energy < 10) 
     { 
      return dead = 'true'; 
     } 
     else { 
      return dead; 
     } 
    } 

    this.Punch = function(otherFighter){ 
     otherFighter.energy -= 10; 
     otherFighter.health -= 10; 

    } 

    this.AtackWithItem(item, fighter){ 
     otherFighter.energy -= item.damage; 
     otherFighter.health -= item.damage; 
    } 
} 

main.js

function initFight() { 

    var fighterA = new Fighter(); 
    var fighterB = new Fighter(); 

    document.getElementById("energy").innerHTML = energy; 
    document.getElementById("health").innerHTML = health; 
    document.getElementById("sword").innerHTML=sword; 

    fighterB.punch(fighterA); 
    document.getElementById("energy").innerHTML = energy; 
    document.getElementById("health").innerHTML = health; 
    document.getElementById("sword").innerHTML=sword; 

    var sword = new item(); 
    fighterA.AtackWithItem(sword,fighterB); 
    document.getElementById("energy").innerHTML = energy; 
    document.getElementById("health").innerHTML = health; 
    document.getElementById("sword").innerHTML=sword; 


} 

item.js

function item(){ 
    this.type = "Swords" 
    this.damage = 20; 
} 

Все файлы истребитель .js, main.j s и item.js будут относиться к тегу:

<script src="../item.js"></script> 
<script src="../fighter.js"></script> 
<script src="../main.js"></script> 

в index.html.

Надеюсь, это поможет вам ...

+0

Спасибо за ответ так быстро, это дает мне лучший взгляд на то направление, в котором мне нужно идти с моим программированием! Я должен добавить, что я делаю все это в блокноте, в отличие от такой программы, как netbeans или визуальная веб-разработка. Я хотел попробовать что-то совершенно с нуля. – ProgrammingFreak

+0

Я рекомендую две среды IDE WebStorm-JetBrains и Sublime Text 2. Если бы мой ответ был полезен, отметьте как действительный anwser. –

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