gpt4 book ai didi

Javascript - 调用外部函数作为对象的属性

转载 作者:行者123 更新时间:2023-12-03 07:04:36 24 4
gpt4 key购买 nike

我有一个对象数组,此时里面只有一个对象。在这个对象中,我有一个函数可以详细说明同一对象的某些属性。该函数在数组外处理,但结果是 NaN,我不知道如何正确传递值..

例子

let arrayObj = [{
number1: 1,
number2: 2,
sum: sum(this.number1 , this.number2)
}
]

function sum(n1, n2) {
return console.log(n1 + n2);
}

结果:NaN。

for (let i in arrayObj){
console.log(arrayObj[i])
}

结果:{number1: 1, number2: 2, sum: undefined}

最佳答案

如果您想要在对象创建期间完全可用的对象,请使用 Function 对象。

let arrayObj = [new function(){
this.number1 = 1;
this.number2 = 2;
this.sum = sum(this.number1 , this.number2)
}]

// minor edit to return the sum instead of returning the result of the console log
function sum(n1, n2) {
console.log(n1 + n2);
return n1 + n2;
}

for (let i in arrayObj){
console.log(arrayObj[i])
}

但是,如果您以后需要此功能,并希望所有这些对象都可以访问它,那么请停止使用匿名对象并创建一个实际的类或原型(prototype)。

原型(prototype):

function Point(number1, number2){
this.number1 = number1;
this.number2 = number2;
}
Point.prototype.sum = function(){
return this.number1 + this.number2;
}

let arrayObj = [
new Point(1,2),
new Point(3,4),
new Point(15,30)
];

for (let i in arrayObj){
console.log(arrayObj[i].sum())
}

类:

class Point {
constructor(number1, number2){
this.number1 = number1;
this.number2 = number2;
}
get sum(){
return this.number1 + this.number2;
}
}

let arrayObj = [
new Point(1,2),
new Point(3,4),
new Point(15,30)
];

for (let i in arrayObj){
console.log(arrayObj[i].sum)
}

关于Javascript - 调用外部函数作为对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64974094/

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