国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端js -- this指向總結。

Wuv1Up / 2510人閱讀

摘要:面向對象編程指向一。總結的值要等到代碼真正執行是才能確定。,調用,只想我們指定的對象后續更新。對象調用,如執行,指向。默認的,指向全局變量。特殊雖然也是對象,但是在這里還是指向那個函數的實例,因為比較特殊。

          面向對象編程 --- this指向

一。首先:,

this的指向在函數定義的時候是確定不了的,只有函數執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個調用它的對象。

二。例如:

var obj = {
   a : 1,
   b : function() { 
       console.log(this.a) 
   }
}

obj.b()時,會輸出1
var fun = obj.b; fun() 時,會輸出undefined

三。原因:
1.obj.b()這里的this指向的是對象o,因為你調用這個fn是通過o.fn()執行的,那自然指向就是對象o
2.

var fun = obj.b;
fun();

相當于,

var b = function(){ 
   console.log(this.a)
};
obj = {
   a:1,
   b:b
};
var fun = obj.b;
fun();

雖然funobj.b的一個引用,但是實際上,他引用的是b函數本身,因此此時的fun()其實是一個不帶任何修飾的函數調用,只是在將fn賦值給變量j的時候并沒有執行所以最終指向的是window

四。總結: this的值要等到代碼真正執行是才能確定。
同時,this的值有如下幾種情況:
1.new調用時指的是被構造的對象。(

function Fn(){
   this.user = "貓咪"
}; 
var a = new Fn(); 
consle.log(a.user); //貓咪

這里之所以對象a可以點出函數Fn里面的user是因為new關鍵字可以改變this的指向,將這個this指向對象a,為什么我說a是對象,因為用了new關鍵字就是創建一個對象實例,我們這里用變量a創建了一個Fn的實例[相當于復制了一份Fn到對象a里面],此時僅僅只是創建,并沒有執行,而調用這個函數Fn的是對象a,那么this指向的自然是對象a,那么為什么對象a中會有user,因為你已經復制了一份Fn函數到對象a中,用了new關鍵字就等同于復制了一份。)
2.callapply調用,只想我們指定的對象(后續更新)。
3.對象調用,如執行obj.b()this指向obj
4.默認的,指向全局變量window

特殊:構造函數版this, 當this碰到return時。

舉例:

(1).

function fn()  { 
     this.user = "金毛"; 
     return {};
 }; 
 var a = new fn;  
 console.log(a.user); //undefined

(2).

function fn()  {   
    this.user = "金毛";    
    return function(){};
}; 
var a = new fn;  
console.log(a.user); //undefined 

(3).

function fn()  {  
    this.user = "金毛";   
    return 1;
}; 
var a = new fn;  
console.log(a.user); //金毛

(4).

function fn()  {  
    this.user = "金毛";  
    return undefined;
}; 
var a = new fn;  
console.log(a.user); //金毛

2.總結:如果返回值是一個對象,那么this指向的就是那個返回的對象,如果返回值不是一個對象那么this還是指向函數的實例。

3.特殊:雖然null也是對象,但是在這里this還是指向那個函數的實例,因為null比較特殊。

function fn()  {  
    this.user = "金毛";  
    return null;
}; 
var a = new fn;   
console.log(a.user); //金毛

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94011.html

相關文章

  • JS題目總結:原型鏈/new/json/MVC/Promise

    摘要:數據管理,包括數據邏輯數據請求數據存儲等功能。負責處理的事件,并更新也負責監聽的變化,并更新,控制其他的所有流程。上面代碼就是一個最簡單的類,構造函數創建出來的對象自身有屬性,其原型上面有一個屬性。 JS題目總結:原型鏈/new/json/MVC/Promise 1原型鏈相關 showImg(https://segmentfault.com/img/remote/14600000161...

    biaoxiaoduan 評論0 收藏0
  • JavaScript系列(四) - 收藏集 - 掘金

    摘要:函數式編程前端掘金引言面向對象編程一直以來都是中的主導范式。函數式編程是一種強調減少對程序外部狀態產生改變的方式。 JavaScript 函數式編程 - 前端 - 掘金引言 面向對象編程一直以來都是JavaScript中的主導范式。JavaScript作為一門多范式編程語言,然而,近幾年,函數式編程越來越多得受到開發者的青睞。函數式編程是一種強調減少對程序外部狀態產生改變的方式。因此,...

    cfanr 評論0 收藏0
  • 2018年螞蟻金服前端一面總結(面向2019屆學生)

    摘要:在這次螞蟻金服的電話面試里面認識到了自己很多不足的地方吧。把字符串分割為字符串數組。從起始索引號提取字符串中指定數目的字符。通常消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。 先簡短的介紹一下我自己吧,我是一個前端學習者,雖然我基礎知識也學了比較好,但是許久不用的知識就像流失的水,很容易就忘。在這次螞蟻金服的電話面試里面認識到了自己很多不足的地方吧。雖然在阿里內推后的人才...

    VEIGHTZ 評論0 收藏0
  • 2018年螞蟻金服前端一面總結(面向2019屆學生)

    摘要:在這次螞蟻金服的電話面試里面認識到了自己很多不足的地方吧。把字符串分割為字符串數組。從起始索引號提取字符串中指定數目的字符。通常消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。 先簡短的介紹一下我自己吧,我是一個前端學習者,雖然我基礎知識也學了比較好,但是許久不用的知識就像流失的水,很容易就忘。在這次螞蟻金服的電話面試里面認識到了自己很多不足的地方吧。雖然在阿里內推后的人才...

    RobinQu 評論0 收藏0
  • 面試官問:JSthis指向

    摘要:之前寫過一篇文章面試官問能否模擬實現的和方法就是利用對象上的函數指向這個對象,來模擬實現和的。雖然實際使用時不會顯示返回,但面試官會問到。非嚴格模式下,和,指向全局對象 前言 面試官出很多考題,基本都會變著方式來考察this指向,看候選人對JS基礎知識是否扎實。讀者可以先拉到底部看總結,再谷歌(或各技術平臺)搜索幾篇類似文章,看筆者寫的文章和別人有什么不同(歡迎在評論區評論不同之處),...

    warnerwu 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<