Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript面向对象与数组_Javascript_Arrays_Object - Fatal编程技术网

Javascript面向对象与数组

Javascript面向对象与数组,javascript,arrays,object,Javascript,Arrays,Object,我正在做一个新的个人练习,我开始JS OOP 我的目标是:创建一支小型机器人部队,让每个机器人自我介绍 我的代码很棒,而且很有效,但是我想改进它。 我想将我的机器人添加到一个数组中,并为每个机器人的介绍创建一个循环 这并不难,但我无法在OOP Javascript中创建数组。我不明白我怎样才能创造一个拥有我的机器人所有特征的机器人 这是我的密码: // Objet Robot function Robot(nick, pv, maxSpeed, position) { this.nick =

我正在做一个新的个人练习,我开始JS OOP

我的目标是:创建一支小型机器人部队,让每个机器人自我介绍

我的代码很棒,而且很有效,但是我想改进它。 我想将我的机器人添加到一个数组中,并为每个机器人的介绍创建一个循环

这并不难,但我无法在OOP Javascript中创建数组。我不明白我怎样才能创造一个拥有我的机器人所有特征的机器人

这是我的密码:

// 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中一样创建它们,它是面向对象的。清晰的答案、更正和其他信息非常感谢,您的答案非常清晰!!一如既往。清晰的答案、更正和其他信息非常感谢,您的答案非常清晰!!