2014-09-28 4 views
0

Я не могу понять, как создать несколько объектов из главного объектаСоздание нескольких объектов с одинаковыми переменными

Вот что я пытаюсь сделать:

var player = { 
    var totalScore = 0; 
    var playing = true; 
    function checkScore() { 
     if (totalScore >= 100) { 
      playing = false; 
     } 
    }; 
}; 

player playerAI = new player(); 
player playerOne = new player(); 
+3

Объекты не функционируют. – SLaks

+0

Я отредактировал код, чтобы было легче читать – Evald

+0

плеер уже является объектом. это не шаблон для создания новых объектов. функции javascript выполняют роль шаблона, с помощью которого вы можете создавать новые объекты. –

ответ

2

Я переписан код как Конструктора в JavaScript

function Player() { 
    this.totalScore = 0; // `this` will refer to the instance 
    this.playing = true; 
} 
Player.prototype.checkScore = function() { // the prototype is for shared methods 
    if (this.totalScore >= 100) {   // that every instance will inherit 
     this.playing = false; 
    } 
}; 

var playerAI = new Player(), 
    playerOne = new Player(); 

Некоторые из ваших шаблонов кода не похожи на JavaScript, правда, вы уверены, что не используете другой язык? (Например, Java)

+0

Да, я думаю о java, когда пишу код, но потом я все время напоминаю себе свой javascript, трудно найти ошибки сейчас, так как eclipse luna не проверяет javascript :( – Evald

+0

@Evald Хорошо, выходите и окажитесь один из десятков компетентных JavaScript IDE, если вы действительно серьезно относитесь к программированию в JavaScript. – 2014-09-28 17:57:52

0

попробовать это:

var player = function() { 
    this.totalScore = 0; 
    this.checkScore = function() { 
     if (totalScore >= 100) { 
     playing = false; 
    }  
}; 
player playerAI = new player(); 
player playerOne = new player(); 
0
// Define a constructor function 
var Player = function() { 

    // This acts as public property 
    this.playing = true; 

    // This acts as public method 
    this.isPlaying = function(){ 
     return this.playing; 
    }; 
}; 

Использование:

var player1 = new Player(); 
console.log(player1.isPlaying()); 

Примечание: Лучше объявлять методы как свойства Player.prototype объекта. (Для экономии памяти)

Player.protoype.isPlaying = function(){ 
    return this.playing; 
}; 
0

Я не уверен, если это то, что вы хотите:

function player() { 
    var totalScore = 0; 
    var playing = true; 
    return { 
     checkScore: function checkScore() { 
      if (totalScore >= 100) { 
       playing = false; 
      } 
     } 
    } 
}; 

var playerAI = new player(); 
var playerOne = new player(); 
Смежные вопросы