關於困惑已久的var self this的解釋

2022-02-08 03:35:43 字數 1093 閱讀 7749

this.name=name;

this.age=age;

this.sayhello=function()

this.saysomething=function()

//詳見:}}

var b1=new basetype("wede",30);

b1.saysomething(); //my name is wede, and i'm 30years old.

從結果來看,是預期的結果。

那麼這裡可能又會出現新的疑問:為什麼在saysomething()方法中非要用self.sayhello()來呼叫呢,

直接sayhello()多好?

其實這又涉及到另乙個話題:例項成員與區域性成員。

我們建立建構函式的意義就是要用它來建立例項,那麼所有屬於例項的成員都需要用this來定義;

而只有那些不屬於例項的成員才不會用this定義;

當然,用this定義了方法以後,在函式作用域內部要呼叫此方法時,就需要加上this了。

為了證明這一點,來看下面的**:

function basetype(name,age)

this.saysomething=function()

}var b1=new basetype("wede",30);

b1.saysomething(); //referenceerror: sayhello is not defined

結果顯示:sayhello方法未定義。

就是說明,我們呼叫的其實是區域性方法sayhello,而現在只有例項方法sayhello,所以會出現異常。

下面來改裝下(注意加粗的部分):

function basetype(name,age)

this.saysomething=function()

}var b1=new basetype("wede",30);

b1.saysomething();//my name is wede, and i'm 30years old.

可以看出,輸出了預期的結果。

而這時候,我們把sayhello方法變成了乙個區域性方法(對於例項不可見),然後再在saysomething方法中呼叫就可以了。

終於搞懂了困惑已久的c語言中的關於指標的那幾個變數

學c語言時,學到指標時,理解不了指標,還老是把關於指標的變數弄混,接下來先看看 再解釋 中的錯誤,解釋之前,我想和你們通俗易懂的說說我在學習中經常弄混的幾個概念 下面說的星q 指的是 q 位址是什麼,指標又是什麼,而位址變數和指標變數一樣嗎,int p 中的p代表什麼,int q 中的q又代表什麼,...

困惑關於INT GUID DATETIME

首先我的機器很爛,而且還十分不穩定,沒有測試的條件。只能提出困惑。今天才了解guid做主鍵從某種意義上來講的確是比int來強的。舉個例子吧。假如文章表內有乙個分類id。另乙個是分類id表。主鍵為int自增長 傳說就是因為int自增長時為了確定int所以會製成insert時效率不如guid。好像有這麼...

關於PingPong緩衝的困惑

請問在 edma3 裡的pingpong 緩衝機制中,ping 緩衝區和 pong 緩衝區時存在於 是通道控制器還是每乙個通道都分為 ping 緩衝區和 pong 緩衝區?另外,在進行 pingpong 傳輸的時候用的是乙個通道還是多個通道呢?在進行 ping pong 傳輸的時候,既然有 ping...