国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[知識盲點] 為function添加值為function的屬性

Rango / 936人閱讀

摘要:理論上來說,里是對象,給對象添加屬性是可以的。很明顯,這就是在或者函數上加了一個屬性,屬性值是函數,作用是截取前后空格。要習慣的把中的一切看作對象,只要是對象,就是屬性的集合,屬性是鍵值對的形式。

今天在某個js交流群里看到這樣一個問題:

  

親們,如果我定義一個function A() { } 可以給這個函數添加一個方法嗎?例如:A.use = function() { }

我回答說“可以,js里function 是對象",但再往深一點想,對這個問題還真有點模糊,果斷驗證一下~

先說下答案:這種寫法是可以的

理論上來說,js里function是對象,給對象添加屬性是可以的。但這樣的函數執行是怎樣的呢?兩個函數有什么聯系呢?

javascriptfunction A() {
    console.log("I am A");
}

A.use = function () {
    console.log("123");
};

A(); // I am A
A.use(); // 123

運行結果可知,這兩個函數在運行的時候并沒有什么相互的影響,也體現了函數名就是個引用,AA.use 是兩個不同的引用,運行的時候指向不同的內存區域,所以沒有影響。

上面的代碼改為:

javascriptvar A = function() {
    console.log("I am A");
}

A.use = function () {
    console.log("123");
};

A(); // I am A
A.use(); // 123

用函數表達式來定義A( ),這樣是不是就明顯多了,或者說習慣多了

上面的結果表明兩個函數運行時互不影響,但是真的一點關系都沒有嗎?想起前幾天總結的this,就好奇地驗證了下這兩個函數的this是什么。

javascriptfunction A() {
    console.log(this);
}

A.use = function () {
    console.log(this);
};

A(); // Window
A.use(); // function A()

A.use()中的this是function A(),這也符合this的使用規則“

  

函數作為對象的方法調用時,this指向這個對象。

只不過在這里,這個對象是個函數而已。

我在寫《JavaScript原型》里面摘抄過下面這段:

在jQuery源碼中,“jQuery”或者“$”,這個變量其實是一個函數,可以用 typeof 驗證一下。

console.log(typeof $);  // function
console.log($.trim(" ABC ")); // ABC

驗明正身!“$”的確是個函數。而經常使用的 $.trim() 也是個函數。

很明顯,這就是在 $ 或者 jQuery 函數上加了一個 trim 屬性,屬性值是函數,作用是截取前后空格。

要習慣的把js中的一切看作對象,只要是對象,就是屬性的集合,屬性是鍵值對的形式。

當時只是記住了可以這樣寫,今天算是真的明白了 :)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85802.html

相關文章

  • 2019秋招知識盲點總結

    摘要:實際上是一個讓出線程的標志遇到會立即返回一個狀態的。一個簡單的防抖函數如果定時器存在則清除重新開始定時執行缺點只能在最后執行,不能立即被執行,在某些情況下不適用。假設壓入棧的所有數字均不相等。接收數據不受同源政策限制。 開始 盡管秋招還沒有拿到offer(好難過),但是一些知識點還是要總結的,既然自己選了這條路,那就一定要堅定不移的走下去...... 注意 new 運算符的優先級 fu...

    Doyle 評論0 收藏0
  • 面試官問:JSthis指向

    摘要:之前寫過一篇文章面試官問能否模擬實現的和方法就是利用對象上的函數指向這個對象,來模擬實現和的。雖然實際使用時不會顯示返回,但面試官會問到。非嚴格模式下,和,指向全局對象 前言 面試官出很多考題,基本都會變著方式來考察this指向,看候選人對JS基礎知識是否扎實。讀者可以先拉到底部看總結,再谷歌(或各技術平臺)搜索幾篇類似文章,看筆者寫的文章和別人有什么不同(歡迎在評論區評論不同之處),...

    warnerwu 評論0 收藏0
  • Deep in JS - 收藏集 - 掘金

    摘要:今天同學去面試,做了兩道面試題全部做錯了,發過來給道典型的面試題前端掘金在界中,開發人員的需求量一直居高不下。 排序算法 -- JavaScript 標準參考教程(alpha) - 前端 - 掘金來自《JavaScript 標準參考教程(alpha)》,by 阮一峰 目錄 冒泡排序 簡介 算法實現 選擇排序 簡介 算法實現 ... 圖例詳解那道 setTimeout 與循環閉包的經典面...

    enali 評論0 收藏0
  • 繼承實現方式及原型概述 | JavaScript 隨筆

    摘要:每一個對象直接量都是的子類,即構造函數中的構造函數與普通函數并沒有什么兩樣,只不過在調用時,前面加上了關鍵字,就當成是構造函數了。由于沒有傳入變量,在調用的構造函數時,會出錯這個問題可以通過一個空對象來解決改自。 showImg(https://segmentfault.com/img/bVmNZj); 對于 OO 語言,有一句話叫Everything is object,雖然 Ja...

    chenjiang3 評論0 收藏0
  • css3 制作圓環進度條

    摘要:引子移動端做一個加載的圖標,跟以往沿用的都不太一樣,是一個圓環進度條,圓環進度條也就罷了,還得能用百分比控制。 引子 移動端做一個 loadiing 加載的圖標,跟以往沿用的都不太一樣,是一個圓環進度條,圓環進度條也就罷了,還得能用百分比控制。 CSS3 實現圓環 demo 剛開始寫這個圓環的時候是參照帖子上給出的css代碼代入,然后根據自己的需求改,發現圓環可以完美轉動了,但是好像沒...

    xingpingz 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<