cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Apakah perbezaan antara kedua-dua cara menulis JS ini

function cs() {
    var _cs = {};    
    _cs .open_change_customer_p = function (url, url_param) {
        console.log(url);
        console.log(url_param);
        //do something
        ...
        ...
        block_enter_presss();
    };
    
    function block_enter_presss() {
        /**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */
    }
    return _cs ;
}
function cs() {
    cs .open_change_customer_p = function (url, url_param) {
        console.log(url);
        console.log(url_param);
        //do something
        ...
        ...
        block_enter_presss();
    };
    
    function block_enter_presss() {
        /**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */
    }
    return cs ;
}

Kandungan tambahan:
Saya menggunakan
var a=new cs();
a.open_change_customer_p ();
pada halaman web.
Kemudian cs hanya mendedahkan fungsi open_change_customer_p
Dalam dua cara penulisan di atas, adakah lebih baik untuk menggantung kaedah untuk didedahkan dalam pembolehubah baharu, atau menggantungnya terus di bawah nama fungsi?

扔个三星炸死你扔个三星炸死你2759 hari yang lalu1009

membalas semua(6)saya akan balas

  • 巴扎黑

    巴扎黑2017-07-05 10:56:15

    Saya lebih kerap melihat yang pertama, tetapi apakah yang terakhir? .

    balas
    0
  • 漂亮男人

    漂亮男人2017-07-05 10:56:15

    Adakah yang kedua seperti ini
    _cs.open_change_customer_p = function (url, url_param){......}

    Perbezaan antara keduanya ialah kaedah kedua boleh dipadamkan, dan kaedah pertama yang ditakrifkan dengan var tidak boleh dipadamkan Selain itu, nampaknya tiada perbezaan Bergantung pada tabiat peribadi, kebolehbacaan kaedah pertama mungkin Ia akan menjadi lebih baik

    balas
    0
  • ringa_lee

    ringa_lee2017-07-05 10:56:15

    Mengapa tidak mengekstrak kaedah statik dan menulis fungsi yang berasingan, tetapi mencipta yang baharu setiap kali?

    balas
    0
  • 阿神

    阿神2017-07-05 10:56:15

    ...Penggunaan pertama:
    var cs1 = cs();
    var cs2 = cs();
    cs1 dan cs2 ialah dua objek berbeza, menunjuk ke ruang memori yang berbeza
    Dan yang kedua akan menghala ke ruang yang sama ialah fungsi cs itu sendiri...
    Masalah yang timbul ialah jika anda mengisytiharkan dua pembolehubah, jika anda menukar salah satu daripadanya, nilai yang lain akan berubah dengan sewajarnya (var cs1 = cs() penggunaan)

    Jika anda mahu var cs1 = new cs(), jenis kedua sentiasa mengawal fungsi cs itu sendiri... Cs di sana harus diganti dengan ini

    Yang pertama bagus...sebab yang kedua pelik...

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-05 10:56:15

    Semua fungsi sepatutnya dapat mencapai fungsi yang sama

    1. Yang pertama nampak lebih selesa

    2. Yang kedua nampak lebih selesa

    Jika anda rasa tidak selesa dengan definisi pertama, anda boleh menentukannya seperti ini

    function cs() {  
        this.open_change_customer_p = function (url, url_param) {
            console.log(url);
            console.log(url_param);
            block_enter_presss();
        };
        
        function block_enter_presss() {
            /**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */
        }
    }
    console.log(new cs())

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-07-05 10:56:15

    Kaedah kedua anda boleh dicapai

    var a=new cs();
    cs.open_change_customer_p ();

    Panggilan sedemikian? Saya meraguinya

    balas
    0
  • Batalbalas