JavaScriptをしようとする、多くの双方向のバインダー

<!DOCTYPE HTML>
<HTML LANG = "EN">

<ヘッド>
    <メタ文字セット= "UTF-8">
    <メタ名=「ビューポート」コンテンツ=「幅=装置幅、初期の規模= 1.0」>
    <META HTTP-当量= "X-UA-互換性のある" コンテンツ= "IE =エッジ">
    <タイトル>ドキュメント</ TITLE>
</ head>の

<身体>
    <H1 CLASS = "DISP"> </ H1>
    <H2 CLASS = "DISP"> </ H2>
    <H3 ID = "D3" クラス= 'DISP'> </ H3>

    <input type = "テキスト" ID = "INP1"> </入力>
    <INPUT TYPE = "テキスト" ID = 'INP2'> </入力>
    <INPUT TYPE = "テキスト" ID = 'INP3'> </入力>
    <スクリプト>
        たへ= {名: '張'、年齢:1}。
        関数バインド(OBJ、キー、セレクタ、小道具、イベント=不定){
            デバッガ
            VAR = document.querySelectorAll(セレクタ)。
            VAR値_1 = OBJ [キー]。
            Array.prototype.slice.call(ELS).forEach(関数(EL){
                IF(イベント){el.addEventListener(イベント、関数(){OBJ [キー] = EL [プロパ];})}
                (!OBJ .__ ep__)場合OBJ .__ ep__ = {};
                Object.defineProperty(OBJ、 "__ep__"、{列挙:真})。
                (もし!OBJ .__ EP __ [キー]){
                    OBJ .__ EP __ [キー] = [];
                    EP OBJ .__ __ [キー] .push({周辺:近いです})。
                    Object.defineProperty(OBJ、キー、{
                        取得:関数()、{[キー] .VALUE EP __ .__ OBJ戻り}
                        セット:関数(値){
                            OBJ .__ EP __ [キー] .VALUE =値;
                            OBJ .__ EP __ [キー] .forEach(EP => {ep.el [ep.prop] =値})。
                        }
                    })
                }エルス{OBJ .__ __ EP [キー] .push({周辺:近いです})。}
                Object.defineProperty(OBJ、 "__ep__"、{列挙:偽})。
            })
            OBJ [キー] = VALUE_1。
        }
        バインド(男、 '名前'、 '#のINP1'、 '値'、 '入力');
        バインド(男、 '名前'、 '#のINP2'、 '値'、 '変更');
        バインド(男 '名前'、 '.disp'、 'innerHTMLプロパティ');
        バインド(男、 '年齢'、 '#1 INP3'、 '値'、 '入力')
        バインド(男、 '年齢'、 '#D3を'、 'innerHTMLプロパティ')
        //document.body.removeChild(document.querySelector('#inp1' ))
    </ SCRIPT>
</ BODY>

</ HTML>

おすすめ

転載: www.cnblogs.com/allofalan/p/11664770.html