關於this和self的使用說明

2022-10-07 07:48:07 字數 1095 閱讀 2159

前兩天在寫乙個chrome的extensions,因為 content裡和background互動必需要乙個非同步方法實現,如:

複製** **如下:

var test = new class(,

initialize: function(args) , function(options) );

} });

這個this應該是test這個物件,但是**方法裡是空的。難道要把this做引數傳過去,再call回來?還好,mootoolnatknbs裡有個好方法,bind。

複製** **如下:

var test = new class(,

initialize: function(args) , function(options) .bind(this));

} });

這下ok了,繼續寫:

複製** **如下:

var test = new class(,

initialize: function(args) , function(options) else

}.bind(this));

}.bind(tnatknbhis));

}, fun1: function {},

fun2: function {}

});

就算有bind也不容易分清哪個this是什麼了。而真實的**比這個要恐怖的多,有的情況下,我們的確需要this指向其它的變數,而不是這個類。

最常用的解決方法,是這樣:

複製** **如下:

var test = new class(,

initialize: function(args) , function(options) else

});

});

}, fun1: function {},

fun2: function {}

});

我特別定義了乙個_self的變數來代替this,這看起來象什麼?python!

現在終於體會到python的self絕對不是多此一舉。

本文標題: 關於this和self的使用說明

本文位址:

Self和self的區別

所有的trait都定義了乙個隱式的型別self,它指當前實現此介面的型別。rust官方文件當self用作函式的第乙個引數時,它等價於self self。self引數等價於self self。mut self引數等價於self mut self。方法引數中的self是一種語法糖,是方法的接收型別 例如...

OC中self和super的使用

1 self用在物件方法中,self指代的是呼叫當前方法的那個物件,可以呼叫其它物件方法。2 self用在類方法中,self指代的是當前類,可以呼叫其它類方法,不可以呼叫物件方法。3 self修飾例項變數 一般在set方法中使用 用在形參變數和例項變數同名時。例 void setspeed int ...

self 和 this 的用法

在訪問php類中的成員變數或方法時,如果被引用的變數或者方法被宣告成const 定義常量 或者static 宣告靜態 那麼就必須使用操作符 反之如果被引用的變數或者方法沒有被宣告成const或者static,那麼就必須使用操作符 另外,如果從類的內部訪問const或者static變數或者方法,那麼就...