javascript - oop如何获得这个 javascript

  显示原文与译文双语对照的内容

我将更改一些代码以更像 C# 中的类一样,因这里不必为每个出现的脚本创建新脚本。 我的构造函数上的作用域遇到问题,我有这里构造函数


function Game(canvas) {


 this.Polygon = function(size, pointCount){


 this.size = size;


 this.pointCount = pointCount;


 this.corners = [];


 this.palette = [];



 this.render = function (GameObject) {


 this.makePolygon(GameObject, this.size, this.corners);


 };


 };



 this.makePolygon = function(GameObject, size, corners){//other code...}


}



我的问题在于这个。渲染,makePolygon是 inside 类,所以这意味着。 我试过使用. bind(this);,但无法正常工作。

我肯定这已经被问过了,但我发现的答案对我来说没有任何作用。

时间:

我在不同团队中使用的约定是在javascript函数的顶部别名 this,以避免这个精确的问题。

例如:


this.Polygon = function(size, pointCount){


 var my = this;


 my.size = size;


 my.pointCount = pointCount;


 my.corners = [];


 my.palette = [];



 my.render = function (GameObject) {


 my.makePolygon(GameObject, my.size, my.corners);


 };


};



this.makePolygon = function(GameObject, size, corners){//other code...}



另一个选项,取决于这个函数的位置,如下所示。


//Somewhere at the top of this code snippet


var my = this;



//...



my.Polygon = function(size, pointCount){


 my.size = size;


 my.pointCount = pointCount;


 my.corners = [];


 my.palette = [];



 my.render = function (GameObject) {


 my.makePolygon(GameObject, my.size, my.corners);


 };


};



my.makePolygon = function(GameObject, size, corners){//other code...}



...