[Javadscript] setPropertyの逆はgetPropertyValueとObject.getOwnPropertyDescriptor()のどっちがいいのか?

こんにちわ。
人のことをとやかく言うのは好きなのに自分のことをとやかく言われるのは嫌いな下駄です。
僕の知り合いで結構な自堕落な人がいて、逢う度にその人の周辺が散らかっている事をしてきして、「ちゃんと片付けたほうがいい」とか、四六時中好きなものを食べて病気にかかりやすい体質から、「少しぐらいは運動をした方がいい」とか、口うるさく言っていたのですが、
この間、僕以外の人からもグチグチ言われて少し凹んでいたので、少し褒めてみた所、なんとその人の口から「ちゃんとやってみようと思う」という言葉が出てきて初めてのやる気が見れた経験をしました。
「北風と太陽」の教訓のいい例ですが、どんなに正論をグチグチ言っても、相手は全く聞く耳を持たずに、相手が少し嬉しくなる内容にするだけで、同じことを言っても受け入れ体制ができるという体験をしました。
「褒めて伸ばす」とはこういう事なのかと、改めて気が付かせられて、きっとそんな僕もグチグチ言ってくる人の事を素直に聞いていれば、もっと自分改善に繋がるという捉え方もできますよね。
よく使うsetProperty
話が逸れましたが、今回はjavascriptでよく使う「setProperty」ですが、
style情報の書き換えを行う時に、簡単にセットすることができるので、インターフェイスセットする際のelement調整で使用します。
そして、一度セットしたstyle情報を再度取得したいと思った事があり、getPropertyなのかと思ったら、そんな命令はjavascriptには無く、その代わりに、”getPropertyValue”と”Object.getOwnPropertyDescriptor()”でproperty情報の取得ができるようです。
でももっとシンプルに、ダイレクトな取得もできるのですが、要するにやり方はいくつもあるが、どれも少しだけ変則的という事なのですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// set document.body.style.setProperty("border","4px solid red",""); // get-direct document.body.style["border"]; > "4px solid red" // getPropertyValue document.body.style.getPropertyValue("border"); > "4px solid red" // Object.getOwnPropertyDescriptor() Object.getOwnPropertyDescriptor(document.body.style , "border") > { > configurable: true, > enumerable: true, > value: "4px solid red", > writable: true > } |
そもそも、”Object.getOwnPropertyDescriptor()”というのは、objectの情報を取得する為の命令らしいのですが、
関連する定義情報も正確に取得できるのだそうですが、あまり使用用途はイメージできませんね。
簡易に使えるgetPropertyValueの方が楽でよさそうです。