第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

this指針 運行結(jié)果是什么,麻煩給出詳解,謝謝!

this指針 運行結(jié)果是什么,麻煩給出詳解,謝謝!

function fn() {? ? this.a = 0;? ? this.b = function() {? ? ? ? alert(this.a)? ? }}fn.prototype = {? ? b: function() {? ? ? ? this.a = 20;? ? ? ? alert(this.a);? ? },? ? c: function() {? ? ? ? this.a = 30;? ? ? ? alert(this.a);? ? }}var myfn = new fn();myfn.b();myfn.c();
查看完整描述

2 回答

已采納
?
stone310

TA貢獻361條經(jīng)驗 獲得超191個贊

this是函數(shù)被調(diào)用的時候,函數(shù)被誰調(diào)用,this就指向誰;

var myfn=new fn()時,是創(chuàng)建了一個實例,然后實例this指向fn,然后_proto_屬性指向fn的prototype屬性;

因此當(dāng)創(chuàng)建好實例,myfn實例上有a和b,(即fn里面的this.a和this.b);它的_proto_屬性(相當(dāng)于fn的prototype屬性)上有b和c;(這里有2個b重名,如果調(diào)用b,會先查找實例上的,如果發(fā)現(xiàn)實例上沒有,再去沿著_proto_屬性去查找);

因此當(dāng)執(zhí)行myfn.b()時(這里在myfn上執(zhí)行b函數(shù),函數(shù)被myfn調(diào)用),

會先在myfn的實例上面去找b,這里它的實例上是有this.a和this.b,這里this指的就是myfn,因此執(zhí)行b()

?this.b?=?function()?{
????????alert(this.a)???//這里執(zhí)行時函數(shù)是被myfn調(diào)用,因此this還是指向myfn
????}

所以就是alert(myfn.a)也就是alert(0);

當(dāng)執(zhí)行myfn.c()時(這里在myfn上執(zhí)行 c函數(shù),函數(shù)被myfn調(diào)用),

會先在myfn的實例上面去找c,這里它的實例上沒有c,于是在myfn的_proto_(即fn的prototype)屬性上去找c,執(zhí)行c()

?c:?function()?{
????????this.a?=?30;???????//被myfn調(diào)用,this指向myfn,a覆蓋原來的a;
????????alert(this.a);?????//被myfn調(diào)用,this指向myfn,this.a為30
????}

所以alert(30)

查看完整回答
反對 回復(fù) 2016-10-10
?
JustWannaHugU

TA貢獻452條經(jīng)驗 獲得超796個贊

this關(guān)鍵字代表當(dāng)前的對象

所以你代碼中的this.a = 30;之類的代碼,就是調(diào)用這個方法的該對象,為其屬性賦值

同理,this.方法即代表調(diào)用當(dāng)前對象的某個方法


查看完整回答
反對 回復(fù) 2016-10-10
  • 2 回答
  • 1 關(guān)注
  • 2978 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號