javascript - Masalah yang ditunjukkan oleh ini
ringa_lee
ringa_lee 2017-05-19 10:08:29
0
3
516
function Persion(name) {
    var self = this;
    self.name = name;
    console.log(self);
    console.log(this);
}

Persion.prototype = {
    before: function() {
        // var self = this;
        console.log('before' + self);
        console.log('before' + this);

        return this;
    },

    after: function(){
        // var self = this;
        console.log('after' + self);
        console.log('after' + this);

        return this;
    }
};


var a = new Persion('Tom');
a.before().after();

Apabila var a = new Persion('Tom'), self dan ini masih menunjuk ke Persion Apabila melaksanakan a.before().after(), self menunjuk ke Window tiada perubahan buatan diri, jadi mengapa nilai diri berubah Apakah prinsipnya?

Tambahan:
Ia adalah ayat teratas var self= ini; semasa menyahpepijat, saya mendapati bahawa diri berubah daripada Persion ke tetingkap Saya mengulas pengisytiharan sebelum dan selepas dan mendapati bahawa apabila diri tidak diisytiharkan, outputnya tidak ditentukan tetapi. tingkap

ringa_lee
ringa_lee

ringa_lee

membalas semua(3)
左手右手慢动作

Pembolehubah diri tidak ditakrifkan dalam fungsi sebelumnya, jadi diri di sini merujuk kepada window.self. Harta
diri mengembalikan rujukan baca sahaja kepada tetingkap itu sendiri. Bersamaan dengan harta Window.

黄舟

Nilai _diri pada sebelum dan selepas anda tidak dapat ditentukan

巴扎黑

Saya faham bahawa terdapat masalah Masalah saya diekstrak daripada kod saya dan dipermudahkan Terdapat bahagian tak segerak dalam kod asal, dan ini menjadi tetingkap dalam bahagian tak segerak. Apabila menyahpepijat, saya mendapati bahawa diri dalam ayat atas var self= ini berubah daripada Persion kepada tetingkap, jadi saya fikir ada sesuatu yang tidak kena dengan diri.

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