首页 > 解决方案 > 如何在函数内部返回函数?(如 p5.js createVector)

问题描述

function createVector(_x, _y, _z) {
 if (_x == undefined) {
  _x = 0;
 }

 if (_y == undefined) {
  _y = 0;
 }

 if (_z == undefined) {
  _z = 0;
 }

 function add(_addX, _addY, _addZ) {
  numX += _addX;
  numY += _addY;
  numZ += _addZ;
 }

 let numX = _x;
 let numY = _y;
 let numZ = _z;

 return {
  x: numX,
  y: numY,
  z: numZ,
  add()
 };
}

到目前为止,我收到一个错误,上面写着 Unexpected token '}' 我真的在尝试重新创建 p5.js createvector() 方法,因为我正在创建自己的库供个人使用。任何帮助将不胜感激 - 杰克

标签: javascriptfunctionreturn

解决方案


传递函数和调用函数是有区别的。这应该给你你想要的:

 return {
   x: numX,
   y: numY,
   z: numZ,
   add
 };

或更明确地说:

 return {
   x: numX,
   y: numY,
   z: numZ,
   add: add
 };

要调用此方法,您可能会执行以下操作:

const myVector = createVector(5,7,9);
const resultOfAddition = myVector.add(1,2,3);

如果您不需要中间值,您甚至可以取消引用:

const myVectorAddition = createVector(5,7,9).add(1,2,3);

推荐阅读