Javascript面向对象与数组
我正在做一个新的个人练习,我开始JS OOP 我的目标是:创建一支小型机器人部队,让每个机器人自我介绍 我的代码很棒,而且很有效,但是我想改进它。 我想将我的机器人添加到一个数组中,并为每个机器人的介绍创建一个循环 这并不难,但我无法在OOP Javascript中创建数组。我不明白我怎样才能创造一个拥有我的机器人所有特征的机器人 这是我的密码:Javascript面向对象与数组,javascript,arrays,object,Javascript,Arrays,Object,我正在做一个新的个人练习,我开始JS OOP 我的目标是:创建一支小型机器人部队,让每个机器人自我介绍 我的代码很棒,而且很有效,但是我想改进它。 我想将我的机器人添加到一个数组中,并为每个机器人的介绍创建一个循环 这并不难,但我无法在OOP Javascript中创建数组。我不明白我怎样才能创造一个拥有我的机器人所有特征的机器人 这是我的密码: // Objet Robot function Robot(nick, pv, maxSpeed, position) { this.nick =
// Objet Robot
function Robot(nick, pv, maxSpeed, position) {
this.nick = nick;
this.pv = pv;
this.maxSpeed = maxSpeed;
this.position = position;
};
//Méthode présentation des robots
Robot.prototype.sePresenter = function() {
console.log("Bonjour je m'appelle " + this.nick + ". J'ai " + this.pv + " points de vie." + " Je me déplace à " + this.maxSpeed + " cases par seconde. Je suis à la case de coordonnées " + this.position);
};
// Variables
var robot1 = new Robot('Maurice',95,2,(5,8));
var robot2 = new Robot('Lilian',76,3,(12,25));
var robot3 = new Robot('Ernest',100,1,(11,14));
var robot4 = new Robot('Juliette',87,3,(2,17));
// Appel Méthode sePresenter
robot1.sePresenter();
robot2.sePresenter();
robot3.sePresenter();
robot4.sePresenter();
我不完全确定你在问什么,但是如果你想要一个
机器人
数组,并对每个机器人调用sePresenter
,你可以使用([…]
)和(或者有循环数组):
旁注:您对构造函数的调用有点奇怪。这:
new Robot('Juliette',87,3,(2,17));
…与此完全相同:
new Robot('Juliette',87,3,17);
// Note no (2,...) -------^
…因为2
和17
都是文字
在JavaScript中,计算两个操作数,结果是第二个操作数的值。因此(2,17)
评估为17
。只有当括号前面的东西是函数引用时,括号才调用函数
如果2,17
是坐标,那么您可能需要一个数组:
new Robot('Juliette',87,3,[2,17]);
// [] rather than () -----^----^
…您将在Robot
中引用它作为此.position[0]
和此.position[1]
或对象:
new Robot('Juliette',87,3,{x:2,y:17});
// Object initializer ----^^^^^^^^^^
…您可以在
Robot
中将其引用为this.position.x
和this.position.y我不完全确定您要问什么,但是如果您想要一个Robot
数组并对每个数组调用sePresenter
,您可以使用([…]
)和(或者有循环数组):
旁注:您对构造函数的调用有点奇怪。这:
new Robot('Juliette',87,3,(2,17));
…与此完全相同:
new Robot('Juliette',87,3,17);
// Note no (2,...) -------^
…因为2
和17
都是文字
在JavaScript中,计算两个操作数,结果是第二个操作数的值。因此(2,17)
评估为17
。只有当括号前面的东西是函数引用时,括号才调用函数
如果2,17
是坐标,那么您可能需要一个数组:
new Robot('Juliette',87,3,[2,17]);
// [] rather than () -----^----^
…您将在Robot
中引用它作为此.position[0]
和此.position[1]
或对象:
new Robot('Juliette',87,3,{x:2,y:17});
// Object initializer ----^^^^^^^^^^
…您将在Robot
中引用它作为this.position.x
和this.position.y
这意味着“无法在OOP Javascript中创建数组”吗?这是你遵循的特殊规则吗?顺便说一句,在JS中,所有东西都是一个对象,所以理论上所有JS都是对象库。数组是对象,你可以像在JS中一样创建它们,这是OOP。什么意思是你“不能在OOP Javascript中创建数组”?这是你遵循的特殊规则吗?顺便说一句,在JS中,所有东西都是一个对象,所以理论上所有JS都是对象库。数组是一个对象,你可以像平常在JS中一样创建它们,它是面向对象的。清晰的答案、更正和其他信息非常感谢,您的答案非常清晰!!一如既往。清晰的答案、更正和其他信息非常感谢,您的答案非常清晰!!