Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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_Class_Oop_Object_Prototype - Fatal编程技术网

Javascript 一个类调用另一个类的一个属性';原型法

Javascript 一个类调用另一个类的一个属性';原型法,javascript,class,oop,object,prototype,Javascript,Class,Oop,Object,Prototype,直接来看代码,这里是Player课程 职业玩家{ 建造师(位置、速度){ this.pos=pos; 速度=速度; } get type(){return“player”;} 静态创建(pos){ 返回新玩家(位置plus(新Vec(0,-0.5)), 新的Vec(0,0)); } } Player.prototype.size=新的Vec(0.8,1.5); 和Vec类: class-Vec{ 构造函数(x,y){ 这个.x=x;这个.y=y; } 加(其他){ 返回新的Vec(this.x

直接来看代码,这里是
Player
课程

职业玩家{
建造师(位置、速度){
this.pos=pos;
速度=速度;
}
get type(){return“player”;}
静态创建(pos){
返回新玩家(位置plus(新Vec(0,-0.5)),
新的Vec(0,0));
}
}
Player.prototype.size=新的Vec(0.8,1.5);
Vec
类:

class-Vec{
构造函数(x,y){
这个.x=x;这个.y=y;
}
加(其他){
返回新的Vec(this.x+other.x,this.y+other.y);
}
次数(因子){
返回新的向量(此.x*因子,此.y*因子);
}
}
我似乎无法理解这一点:

返回新玩家(pos.plus(新Vec(0,-0.5)),
新的Vec(0,0));
pos.plus()
来自哪里


plus()
方法在
Vec
的原型中,对吗?
pos
如何访问
plus()
?它是
Player
class的属性,但调用
Vec
class的方法。我很困惑。需要一些澄清。

您似乎被变量范围弄糊涂了。传递给
Player
的构造函数的
pos
参数仅在构造函数本身中可见,尽管它也可以在实例上访问,因为构造函数设置了
this.pos
。但是,在
create
方法中,
pos
是一个完全不同的方法参数,它与构造函数中的
pos
无关。

您似乎被变量范围弄糊涂了。传递给
Player
的构造函数的
pos
参数仅在构造函数本身中可见,尽管它也可以在实例上访问,因为构造函数设置了
this.pos
。但是,在
create
方法中,
pos
是一个完全不同的方法参数,它与构造函数中的
pos
无关。我从没注意到那部分。我的错,我明白了。我从没注意到那部分。我的错。