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();var a = new Persion('Tom')的時候self和this還是指向Persion,怎么執(zhí)行a.before().after()的時候self就指向了Window了,本身就是想用self保存this的,我并沒有人為改變self,那為什么self的值會變,什么原理?補充:是最上面那句var self= this;在調試的時候發(fā)現(xiàn)self由Persion變成了window,before和after里面我注釋掉聲明是發(fā)現(xiàn)self未聲明時輸出的不是undefined而是window
this指向的問題
慕容3067478
2018-11-21 10:14:43