在函数中使用 this 关键字设置属性

我正在makerjs练习javascript. 当我使用时,我遇到了关键字问题this。


//render a model created by a function, using the 'this' keyword


var makerjs = require('makerjs');


function myModel() {


 var line = { 

   type: 'line', 

   origin: [0, 0], 

   end: [50, 50] 

  };


 var circle = { 

   type: 'circle', 

   origin: [0, 0],

   radius: 50

  };


 var pathObject = { myLine: line, myCircle: circle };


//set properties using the "this" keyword ***here I dont' understand

 this.paths = pathObject;

}


//note we are using the "new" operator

var svg = makerjs.exporter.toSVG(new myModel());


document.write(svg);

我不明白这段代码是如何工作的。使用此关键字保存后,如下所示,


 this.paths = pathObject;

如果不返回任何东西,这怎么行?


开满天机
浏览 94回答 1
1回答

PIPIONE

您的myModel函数不一定需要返回任何内容,它还可以通过this. makerjs.exporter.toSVG正在寻找您在下面一行中公开的实例的paths属性。new myModel()this.paths = pathObject;在上面的行中,您正在paths当前实例上创建一个属性,其中当前实例是通过 访问的this。正如您在下面的代码片段中看到的,我可以paths使用m.paths.function myModel() { var line = {    type: 'line',    origin: [0, 0],    end: [50, 50]   }; var circle = {    type: 'circle',    origin: [0, 0],   radius: 50  }; var pathObject = { myLine: line, myCircle: circle };//set properties using the "this" keyword ***here I dont' understand this.paths = pathObject;}let m = new myModel();console.log(m.paths)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5