gpt4 book ai didi

javascript - Javascript 中对象属性的方法

转载 作者:行者123 更新时间:2023-12-02 15:34:15 25 4
gpt4 key购买 nike

我有一个构造函数:

function Point(point, left, right) {
this.p = point;
this.l = left;
this.r = right
}
var bezierPoint = new Point([0.0,0.0],[-50.43794, 0.0],[25.54714,4.78643])

是否有一种正确的方法来创建一个可以在所有属性中使用而不是在对象本身中使用的方法?例如如果我想输出

console.log(bezierPoint.l) // -50.43794, 0.0
console.log(bezierPoint.l.round()) // -50, 0
console.log(bezierPoint.r.round()) // 26, 5

或者这是错误的方法,我应该为我将要使用的数据类型制定新方法?类似的东西

Array.prototype.round = function() {
return [Math.round(this[0]), Math.round(this[1])] //this code doesn't matter now
}
console.log(bezierPoint.l.round()) // -50, 0

最佳答案

您可以使用参数作为内部变量并公开方法,如下所示:

function Point(point, left, right) {

function exposed(points) {
return {
value: function () {
return points;
},
round: function () {
return [Math.round(points[0]), Math.round(points[1])];
}
};
}

this.p = exposed(point);

this.l = exposed(left);

this.r = exposed(right);

}

然后你可以像这样使用它:

var bezierPoint = new Point([0.0, 0.0], [-50.43794, 0.0], [25.54714, 4.78643]);

document.write('value:' + bezierPoint.l.value() + '<br />'); // value:-50.43794,0

document.write('round:' + bezierPoint.l.round() + '<br />'); // round:-50,0

关于javascript - Javascript 中对象属性的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com