フロントエンドインタビューの質問--- Object.defineProperty(2)

コードワードは簡単ではなく、役立つ学生は私のWeChat公式アカウントに注意を払うことを望んでいます:コードプログラムライフ、ありがとう!

前回の号で、Object.definePropertyに関する3つのインタビューの質問を共有しましたが、本日はもう1つ共有します。これはBaiduのインタビューの質問でもあります。

var obj = {
    
    
    a:1,
    b:2,
    c:3
}
for(var k in obj){
    
    
    obj[k] += 1;
}

console.log(obj);
// 输出:
/*
{
    a:3,
    b:3,
    c:5
}
*/

主題の要件は次のとおりです:既存のオブジェクトには3つの属性a、b、およびcがあり、値は1、2、および3です。次に、ループトラバーサルを実行し、属性の値に対して+1操作を実行します。次に、オブジェクトを出力するとき、a、b、cの値は3、3、5でなければなりません。

操作しない場合、出力内容は確かに2,3,4であり、要求の対象は3,3,5です。明らかに、Object.definePropertyを使用する必要があります

var _obj = {
    
    
    a:1,
    b:2,
    c:3
}
var obj = {
    
    };

for(var k in _obj){
    
    
    Object.defineProperty(obj,k,{
    
    
        enumerable:true,
        writable: k === 'b' ? false:true,
        value: ++_obj[k]
    })
}

for(var k in obj){
    
    
    obj[k] += 1;
}

console.log(obj);

ここに画像の説明を挿入
同様のトピックを見つけたら、最初にObject.definePropertyについて考える必要があります
フォローアップインタビューの質問は継続的に更新され、最新かつ最も包括的な質問が最初に公開アカウントでリリースさます。


WeChatミニプログラムコースのデザイン、完全なデザインのニーズがあります。個人のQQに連絡してください:505417246

次のWeChatパブリックアカウントに注意してください。WeChatアプレット、Vue、TypeScript、フロントエンド、ユニアプリ、フルスタック、Nodejs、Python、その他の実用的な学習資料を受け取ることができます。
最新かつ最も完全なフロントエンドの知識の概要とプロジェクトのソースコードは、できるだけ早くWeChatに公開されます。いいえ、ご注意ください。ありがとうございます。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_46171043/article/details/113093980