作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试调用一个函数在另一个接受两个数字作为参数的函数上进行乘法运算。我尝试过使用构造函数和嵌套函数,但无济于事。我已经尝试过以下方法:
function Coordinate(a, b) {
var x, y;
return {x: a, y: b};
function multiply(n) {
x * n;
y * n;
}
}
var makeCoordinate = new Coordinate(2,3);
console.log(makeCoordinate.multiple(2));
//预期输出:4 6;
最佳答案
您应该将 multiply
设置为 Coordination
的 prototype,以便当您调用 new Coordination
时,实例化的对象将具有 multiply
作为方法。为了使其正常工作,您还应该设置 this.x
和 this.y
而不是直接返回对象:
function Coordinate(a, b) {
this.x = a;
this.y = b;
}
Coordinate.prototype.multiply = function(n) {
this.x *= n;
this.y *= n;
return this;
}
var makeCoordinate = new Coordinate(2,3);
console.log(makeCoordinate.multiply(2));
或者,如果您希望 multiply
仅返回相乘的坐标而不更改原始对象,则单独返回坐标:
function Coordinate(a, b) {
this.x = a;
this.y = b;
}
Coordinate.prototype.multiply = function(n) {
return [this.x * n, this.y * n];
}
var makeCoordinate = new Coordinate(2,3);
console.log(makeCoordinate.multiply(2));
关于javascript - 如何在一个函数上调用另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51015053/
我是一名优秀的程序员,十分优秀!