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

資訊專欄INFORMATION COLUMN

JavaScript中怎么不帶括號的調(diào)用函數(shù)

HmyBmny / 2102人閱讀

(1)作為構(gòu)造器調(diào)用

利用new關(guān)鍵字可以不帶括號地調(diào)用函數(shù):

function Greet() {

    console.log("hello");

}

new Greet; // parentheses are optional in this construct.

new操作符的語法為:

new constructor[([arguments])]

(2)隱性實現(xiàn) toString 或者 valueOf 的調(diào)用

另一個例子就可以隱性調(diào)用toString或者valueOf方法:

var greet = {

    toString: function() {

         return "hello";

    }

}



greet + ""; // 字符串連接會強制性轉(zhuǎn)化到String類型,這樣就隱性調(diào)用了toString

可以利用這種方式調(diào)用任意的函數(shù):

function func() {

    console.log("hello");

}



var greet = {

    toString: func

}



greet + "";

或者使用 valueOf:

function func() {

    console.log("hello");

}



var greet = {

    valueOf: func

}



+greet;

如果要使用valueOf的話,可以在Function的原型中完成復(fù)寫,這樣也能完成一個函數(shù)的傳遞:

Function.prototype.valueOf = function() {

    this.call(this);

    // Optional improvement: avoid `NaN` issues when used in expressions.

    return 0; 

};
function greet() {

    console.log("hello");

}



+greet;

(3)Iterators

可以利用*操作符創(chuàng)建一個迭代器,然后在下一個元素被遍歷的時候就會被自動調(diào)用了:

function* func() {

    console.log("hello");

}



var greet = {};

greet[Symbol.iterator] = func;



[...greet];

一般來說用迭代器的時候都會附帶一個yield語句,但是在這邊希望調(diào)用某個函數(shù)的時候不一定要加上這個語句。上述代碼中是最后一個語句調(diào)用了函數(shù),同時也可以利用解構(gòu)賦值來進行調(diào)用

[,] = greet;

或者使用for ... of結(jié)構(gòu):

for ({} of greet);

(4)Getters

function func() {

    console.log("hello");

}



Object.defineProperty(window, "greet", { get: func });



greet;

?也可以利用Object.assign:

Object.assign(window, { get greet() {

    console.log("hello");

}}); 

greet;

全局將 window 對象替換成一個你自定義的全局對象。

(5)Tagged Template Literals

ES6中可以利用模板字符串的方式調(diào)用:

function greet() {

    console.log("hello");

}



greet``;

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

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

相關(guān)文章

  • js騷操作罵人不帶

    摘要:讓我們快速的復(fù)習(xí)一下在中一共有兩種類型的值原始值和對象值原始值有布爾值數(shù)字還有字符串其他的所有值都是對象類型的值包括數(shù)組和函數(shù)類型轉(zhuǎn)化先按運算符來分一下類減號,乘號,肯定是進行數(shù)學(xué)運算,所以操作數(shù)需轉(zhuǎn)化為類型。 前言 很多小伙伴們覺得javaScript很簡單,下面的這行 javaScript代碼可能會讓你懷疑人生。 (!(~+[])+{})[--[~+][+[]]*[~+[]] +...

    Sunxb 評論0 收藏0
  • JavaScript深入淺出

    摘要:理解的函數(shù)基礎(chǔ)要搞好深入淺出原型使用原型模型,雖然這經(jīng)常被當作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統(tǒng)的類繼承還要強大。中文指南基本操作指南二繼續(xù)熟悉的幾對方法,包括,,。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家?guī)韼椭?...(據(jù)說是阿里的前端妹子寫的) this 的值到底...

    blair 評論0 收藏0
  • 進擊 JavaScript(五) 之 立即執(zhí)行函數(shù)與閉包

    摘要:匿名函數(shù)是不能單獨寫的,所以就提不上立即執(zhí)行了。六立即執(zhí)行函數(shù)在閉包中的應(yīng)用立即執(zhí)行函數(shù)能配合閉包保存狀態(tài)。來看下上節(jié)內(nèi)容中閉包的例子現(xiàn)在,我們來利用立即執(zhí)行函數(shù)來簡化它第一個匿名函數(shù)執(zhí)行完畢后,返回了第二個匿名函數(shù)。 前面的閉包中,提到與閉包相似的立即執(zhí)行函數(shù),感覺兩者還是比較容易弄混吧,嚴格來說(因為犀牛書和高程對閉包的定義不同),立即執(zhí)行函數(shù)并不屬于閉包,它不滿足閉包的三個條件。...

    vincent_xyb 評論0 收藏0
  • 帶你入門 JavaScript ES6 (三)

    摘要:上一章我們學(xué)習(xí)了遍歷和擴展字符語法。本章我們主要學(xué)習(xí)中的箭頭函數(shù)箭頭函數(shù)更準確來說叫箭頭函數(shù)表達式。箭頭函數(shù)余普通函數(shù)功能相同,但語法差別比較大。 帶你入門 JavaScript ES6 (三) 本文同步帶你入門 JavaScript ES6 (三),轉(zhuǎn)載請注明出處。 上一章我們學(xué)習(xí)了 for of 遍歷和擴展字符語法。本章我們主要學(xué)習(xí) ES6 中的箭頭函數(shù) 箭頭函數(shù) 更準確來說叫 箭...

    劉福 評論0 收藏0
  • 【愣錘筆記】一支穿云箭、正則來相見

    摘要:表示進行多行匹配。如果正則表達式中含有子表達式,那么該數(shù)組后續(xù)的項依次為匹配到的第一個子表達式的匹配結(jié)果,第二個第個。關(guān)于正則方法有一點必須要提,很容易導(dǎo)致錯誤的情況。這時候直接使用該正則表達式對進行方法調(diào)用,卻返回了。匹配前一項至少次。有人說,一行正則抵得上100行代碼……正則表達式,每門語言都有,在我們的js開發(fā)中,最常見的使用場景:一是表單驗證,像是登錄注冊啊,用戶輸入檢測啊,不管在前...

    wangbjun 評論0 收藏0

發(fā)表評論

0條評論

HmyBmny

|高級講師

TA的文章

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