最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解JavaScript原型對象的this指向問題

 更新時間:2021年11月18日 10:07:31   作者:bear*6  
這篇文章主要為大家介紹了JavaScript原型對象的this指向問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

一、this指向

構造函數中的this 指向實例對象。那么原型對象this的指向呢?

如下:

function Student(age,name){
            this.age = age;
            this.name = name;
        }
        var that;
        Student.prototype.score = function(){
            console.log('孩子們成績都很好!');
            that = this;
        }
        var xl = new Student(18,'小熊');
        xl.score();
        console.log(that === xl);

定義一個全局變量that,在score函數里面給它賦值,讓其指向函數里面的this,調用實例對象的score方法,判斷that和實例對象是否一致,如果一致,則說明原型對象this的指向是該實例。

打印結果為:

在這里插入圖片描述

即原型對象里面放的是方法, 這個方法里面的this 指向的是 這個方法的調用者, 也就是這個實例對象。

二、修改this指向

1、call()方法

寫一個簡單的兩數相加的函數。

 function fn(a,b){
           console.log(a+b);
            console.log(this);
		 }
 fn(1,2)

在函數內部打印this,調用函數,看其this的指向。

在這里插入圖片描述

可知this指向window對象,如果我們想讓this指向我們新創(chuàng)建的一個對象,怎么操作呢?

先定義一個對象,

o = {};

然后通過call()修改this指向,讓其指向新創(chuàng)建的對象o

 o = {
            name: 'xl'
        };
        fn.call(o,1,2);

打印結果為:

在這里插入圖片描述

現在this指向新創(chuàng)建的對象o,即修改成功。

2、apply()方法

apply()和call()方法基本相同,這里就不贅述,直接上代碼:

 function fn(a,b){
           console.log(a+b);
            console.log(this);
        }
        o = {
            name: 'xl'
        };
        fn.apply(o,[1,2]);

可以發(fā)現,這兩種方法還是有區(qū)別的,即:call()接受的參數必須是連續(xù)參數,而apply()方法接收參數的形式是數組參數。

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • Bootstrap實現下拉菜單多級聯動

    Bootstrap實現下拉菜單多級聯動

    這篇文章主要為大家詳細介紹了Bootstrap實現下拉菜單多級聯動,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Angularjs結合Bootstrap制作的一個TODO List

    Angularjs結合Bootstrap制作的一個TODO List

    這篇文章主要介紹了Angularjs結合Bootstrap制作的一個TODO List 的相關資料,感興趣的小伙伴們可以參考一下
    2016-08-08
  • javascript溫習的一些筆記 基礎常用知識小結

    javascript溫習的一些筆記 基礎常用知識小結

    在電腦上找到多年前的javascript的一些小筆記,因為要將筆記本上面的文件整理一下, 不用的刪除掉, 所以將此篇筆記再發(fā)布一下,存檔到自己的博客吧, 電腦上的文件就刪除了
    2011-06-06
  • 如何解決ligerUI布局時Center中的Tab高度大小

    如何解決ligerUI布局時Center中的Tab高度大小

    這篇文章主要介紹了如何解決ligerUI布局時Center中的Tab高度大小的相關資料,需要的朋友可以參考下
    2015-11-11
  • JS自定義滾動條效果簡單實現代碼

    JS自定義滾動條效果簡單實現代碼

    這篇文章主要為大家詳細介紹了JS自定義滾動條效果的簡單實現代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • javascript設計模式 – 外觀模式原理與用法實例分析

    javascript設計模式 – 外觀模式原理與用法實例分析

    這篇文章主要介紹了javascript設計模式 – 外觀模式,結合實例形式分析了javascript外觀模式基本概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • TypeScript判斷對象類型的4種方式代碼

    TypeScript判斷對象類型的4種方式代碼

    這篇文章主要給大家介紹了關于TypeScript判斷對象類型的4種方式代碼,TypeScript能根據一些簡單的規(guī)則推斷(檢查)變量的類型,你可以通過實踐很快的了解它們,需要的朋友可以參考下
    2023-07-07
  • 詳解js中Json的語法與格式

    詳解js中Json的語法與格式

    本文詳細介紹了js中Json的語法與編寫格式,有需要的朋友可以看下
    2016-11-11
  • JS實現拖拽元素時與另一元素碰撞檢測

    JS實現拖拽元素時與另一元素碰撞檢測

    這篇文章主要為大家詳細介紹了JS實現拖拽元素時與另一元素碰撞檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 利用Three.js如何實現陰影效果實例代碼

    利用Three.js如何實現陰影效果實例代碼

    使用three.js可以方便的讓我們在網頁中做出各種不同的3D效果,下面這篇文章主要給大家介紹了關于利用Three.js如何實現陰影效果的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09

最新評論

华池县| 邵阳县| 高密市| 丹棱县| 将乐县| 冷水江市| 清水河县| 铜陵市| 横山县| 石嘴山市| 凯里市| 顺昌县| 弥渡县| 青川县| 合作市| 华容县| 莎车县| 肥西县| 福清市| 清镇市| 平乡县| 克什克腾旗| 万荣县| 吉首市| 泗阳县| 铜山县| 开原市| 永吉县| 漾濞| 江阴市| 高清| 溧水县| 平罗县| 鸡泽县| 苗栗县| 望谟县| 鸡东县| 曲麻莱县| 乌恰县| 内江市| 平武县|