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...