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

資訊專欄INFORMATION COLUMN

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

Rango / 935人閱讀

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

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

  

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

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

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

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

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

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

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

運行結(jié)果可知,這兩個函數(shù)在運行的時候并沒有什么相互的影響,也體現(xiàn)了函數(shù)名就是個引用,AA.use 是兩個不同的引用,運行的時候指向不同的內(nèi)存區(qū)域,所以沒有影響。

上面的代碼改為:

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

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

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

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

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

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

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

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

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

  

函數(shù)作為對象的方法調(diào)用時,this指向這個對象。

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

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

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

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

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

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

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/85802.html

相關(guān)文章

  • 2019秋招知識盲點總結(jié)

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

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

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

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

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

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

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

    chenjiang3 評論0 收藏0
  • css3 制作圓環(huán)進度條

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

    xingpingz 評論0 收藏0

發(fā)表評論

0條評論

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