Ваша myModel
функция не обязательно должна что-либо возвращать, она также может предоставлять свойства через this
. makerjs.exporter.toSVG
ищет paths
свойство в new myModel()
экземпляре, которое вы указали в строке ниже.
this.paths = pathObject;
В приведенной выше строке вы создаете свойство paths
для текущего экземпляра, где текущий экземпляр доступен через this
. Как вы можете видеть из фрагмента ниже, я могу получить доступ к paths
, используя m.paths
.
Вы можете узнать больше о том, как this
ведет себя, когда функция вызывается как конструктор здесь (ищите «Как конструктор»)
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)