第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

調(diào)用外部函數(shù)作為對(duì)象的屬性

調(diào)用外部函數(shù)作為對(duì)象的屬性

慕容森 2023-06-15 16:14:23
我有一組對(duì)象,此刻里面只有一個(gè)對(duì)象。在這個(gè)對(duì)象中,我有一個(gè)函數(shù)可以詳細(xì)說(shuō)明同一對(duì)象的某些屬性。該函數(shù)在數(shù)組外處理,但結(jié)果是 NaN,我不知道如何正確傳遞值。例子let arrayObj = [{  number1: 1,  number2: 2,  sum: sum(this.number1 , this.number2)}]function sum(n1, n2) {  return console.log(n1 + n2);}結(jié)果:NaN。for (let i in arrayObj){  console.log(arrayObj[i])}結(jié)果:{number1: 1, number2: 2, sum: undefined}
查看完整描述

4 回答

?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果在對(duì)象創(chuàng)建期間想要一個(gè)完全可用的對(duì)象,請(qǐng)使用 Function 對(duì)象。


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])

}

但是,如果您以后需要此功能,并希望所有這些對(duì)象都可以訪問(wèn)它,那么請(qǐng)停止使用匿名對(duì)象并創(chuàng)建一個(gè)實(shí)際的類或原型。


原型:


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())

}

班級(jí):


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)

}


查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
吃雞游戲

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以在遍歷對(duì)象時(shí)將該屬性添加到對(duì)象。


const arrayObj = [{

    number1: 1,

    number2: 2,

}];


function sum(n1, n2) {

  return n1 + n2;

}


for (let i in arrayObj){

  arrayObj[i].sum = sum(arrayObj[i].number1, arrayObj[i].number2)

  console.log(arrayObj[i])

}


查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊

有一個(gè)簡(jiǎn)單的解決方案。您可以在 sum 屬性中放置一個(gè)即時(shí)函數(shù),并在該函數(shù)下,通過(guò)將對(duì)象的其他所需值轉(zhuǎn)換為變量來(lái)發(fā)送它們。見下文:


function sum(n1, n2) {

    return n1 + n2;

}

const arrayObj = [{

        'number1': 1,

        'number2': 2,

        'sum': function () {

            let num1 = this.number1, num2 = this.number2;

            return sum(num1, num2);

        }

    }];


console.log(arrayObj.sum())


查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

對(duì)于這個(gè)問(wèn)題,我找到了另一個(gè)有趣的解決方案(我不記得是在哪里找到的。)。使用javascript 的getter 函數(shù)可以輕松解決問(wèn)題。您可以直接在對(duì)象中使用它來(lái)使用外部函數(shù)。如果對(duì)象的屬性(鍵)使用外部函數(shù)來(lái)獲取值,并且它的行為必須像普通的“鍵:值”對(duì)(不是方法/函數(shù)),那么 getter 函數(shù)是最好的使用方法得到價(jià)值。

function sum(n1, n2) {

? ? return n1 + n2;

}

const arrayObj =?

? ? ? {

? ? ? ? get sum() {return sum(this.number1, this.number2)},

? ? ? ? number1: 1,

? ? ? ? number2: 2,

? ? ? ? number3: 4,

? ? ? ? get totalsum() {return sum(this.sum, this.number3)} //using the sum property (that used external function) in another property.

? ? ? };



console.log(arrayObj);

console.log('the sum of '+arrayObj.number1+' & '+arrayObj.number2+' is: '+arrayObj.sum);?


console.log('the sum of '+arrayObj.sum+' & '+arrayObj.number3+' is: '+arrayObj.totalsum);



查看完整回答
反對(duì) 回復(fù) 2023-06-15
  • 4 回答
  • 0 關(guān)注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)