this的四種用法

2021-09-20 09:25:21 字數 1588 閱讀 5153

js 中的this是比較難理解的。這裡將介紹this的具體用法。主要是下面的四種方法:

1.作為物件的方法;

2.作為普通函式中;

3.作為構造函式呼叫;

一、作為物件的方法使用,this指向這個物件;

for example:

var adou = {

a:1,

getadou: function() {

console.log( this===adou );//true

console.log( this.a );//1

adou.getadou();

二、作為普通函式呼叫,this,指向全域性變數window (瀏覽器中)

for example:

window.a = "adou";

function getad(){

console.log(this.a);//adou

getad();

在舉乙個容易混淆的函式例子:

for example2:

window.a = "adou";

var adou = {

a:1,

getadou: function() {

console.log( this.a );//adou

var  adoutwo = adou.getadou;//將adou的getadou方法賦值給了adoutwo後,

//adoutwo就是乙個普通函式,在呼叫這個普通函式時候,this指向的就是全域性變數

adoutwo();

三、作為構造函式呼叫,this的指向是 往下看

建構函式和普通函式差不多一樣的。但是在與呼叫方式 new的區別(new的具體解析下回分解),當用 new 運算子呼叫函式時,該函式會返回乙個物件。一般情況下,構造器裡面的this就是指向返回的這個物件。

for example:

function ad(){

this.a = "adou";

var adou = new ad();

console.log(adou.a);//adou 

但是,如果構造器函式顯示的返回乙個object型別的物件,new運算最終的結果會返回這個物件;

for example2:

function ad(){

this.a = "adou";

return {

a : "bob"

var ad = new ad();

console.log(ad.a);//bob

for example:

var ad1 = {

name : "adou",

getname : function(){

console.log(this.name)

var ad2 = {

name : "adou2"

ad1.getname();//adou

ad1.getname.call(ad2);//adou2

下方的this 如下:

typedef的四種用法

用途一 定義一種型別的別名,而不只是簡單的巨集替換。可以用作同時宣告指標型的多個物件。比如 char pa,pb 這多數不符合我們的意圖,它只宣告了乙個指向字元變數的指標,和乙個字元變數 以下則可行 typedef char pchar 一般用大寫 pchar pa,pb 雖然 char pa,pb...

四種DC的用法

1 api函式方法用hdc hdchdc hdc getdc m hwnd movetoex hdc,m ptorigin.x,m ptorigin.y,null lineto hdc,point.x,point.y releasedc m hwnd,hdc 必須成對使用 這裡獲得getdc 函式需...

指標的四種用法

用指標變數儲存記憶體位址 通過指標訪問它所儲存的記憶體位址上的資料 對指標進行計算,使指標發生偏移 在函式間傳遞指標,達到傳遞資料的效果 如果指標指向某個函式,我們可以通過呼叫指標來呼叫它所指向的函式 通過這個函式輸入三十個分數,並列印出大於60分的成績。includetypedef void fu...