javascript - Apakah perbezaan antara kedua-dua cara menulis JS ini
扔个三星炸死你
扔个三星炸死你 2017-07-05 10:54:15
0
6
998
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?

扔个三星炸死你
扔个三星炸死你

membalas semua(6)
巴扎黑

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

漂亮男人

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

ringa_lee

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

阿神

...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...

给我你的怀抱

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

Kaedah kedua anda boleh dicapai

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

Panggilan sedemikian? Saya meraguinya

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan