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

資訊專欄INFORMATION COLUMN

fn有toString方法,string沒有toFunction方法,自定義一個(gè)toFunction

qiangdada / 2460人閱讀

摘要:更新感謝行列給了一個(gè)更加精簡(jiǎn)的方法實(shí)現(xiàn)重點(diǎn)在和方法很笨拙,不知道有沒有大神給改改的,或者有什么可替換的系統(tǒng)方法。總結(jié)一行神奇的代碼會(huì)還原到

更新:
感謝 @行列[xxooyy] 給了一個(gè)更加精簡(jiǎn)的方法實(shí)現(xiàn):

String.prototype.toFunction=function(){ return eval("("+this+")")};
//重點(diǎn)在"("和")"
String.prototype.toFunction = function () {
    var fnString = this.toString();
    var preRs = "^functions*[a-zA-Z]*?([sS]*?)s*{";
    var endRs = "}$";
    var argRs = "^functions*[a-zA-Z]*?(|)s*{|s*";
    var preReg = new RegExp(preRs, "i");
    var endReg = new RegExp(endRs);
    var argReg = new RegExp(argRs, "g");
    var preEndReg = new RegExp(preRs + "|" + endRs, "gi");
    if (preReg.test(fnString)) {
        var preEnd = fnString.match(preEndReg);
        var fnArguments = preEnd[0].replace(argReg, "").split(",");
        var fnBody = fnString.replace(preEndReg, "");
        var fn = new Function(fnArguments, fnBody);
        return fn;
    } else {
        return fnString;
    }
}

"function (a) { console.log(a); }".toFunction();
//function anonymous(a) { console.log(a); }

方法很笨拙,不知道有沒有大神給改改的,或者有什么可替換的系統(tǒng)方法。
https://jsfiddle.net/jsoncode...

總結(jié)一行神奇的代碼:

var fn = function (){};
new Function("return "+Function.prototype.toString.call(fn));
//會(huì)還原到fn

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

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

相關(guān)文章

  • 《javascript高級(jí)程序設(shè)計(jì)》筆記:valueOf() / toString() 對(duì)比

    摘要:中這樣描述和調(diào)用方法用來把對(duì)象轉(zhuǎn)換成原始類型的值數(shù)值字符串和布爾值。你很少需要自己調(diào)用此函數(shù)當(dāng)遇到一種需要轉(zhuǎn)換成一個(gè)原始值情況時(shí)候,會(huì)自動(dòng)調(diào)用此函數(shù)。默認(rèn)情況下會(huì)被每個(gè)對(duì)象繼承。 MDN 中這樣描述 valueOf() 和 toString(): JavaScript 調(diào)用 valueOf() 方法用來把對(duì)象轉(zhuǎn)換成原始類型的值(數(shù)值、字符串和布爾值)。 你很少需要自己調(diào)用此函數(shù);當(dāng)...

    yzzz 評(píng)論0 收藏0
  • 盤點(diǎn)Vue源碼中用到的工具函數(shù)

    摘要:用做緩存的高階函數(shù)用高階函數(shù)的好處是無需暴露不同要求的緩存對(duì)象在外面,形成一個(gè)閉包。函數(shù)內(nèi)部調(diào)用函數(shù)得到操作后的值,并緩存在對(duì)象中,如果再對(duì)同一個(gè)值進(jìn)行操作時(shí),則直接從緩存中取,無需再調(diào)用函數(shù)計(jì)算。 以下摘取的函數(shù),在 shared 目錄下公用的工具方法。文件在 util.js 中,githu地址。 提取了一些常用通用的函數(shù)進(jìn)行剖析,主要包含以下內(nèi)容: 創(chuàng)建一個(gè)被凍結(jié)的空對(duì)象 判斷是...

    elarity 評(píng)論0 收藏0
  • vue的源碼分析(全局工具函數(shù))

    摘要:創(chuàng)建一個(gè)自調(diào)用匿名函數(shù),設(shè)計(jì)參數(shù),并傳入對(duì)象。表示獨(dú)一無二的值聲明時(shí)不能使用,而是聲明時(shí)可以加參數(shù),用于描述作為時(shí)不能被遍歷這個(gè)函數(shù)主要是檢測(cè)當(dāng)前對(duì)象是否有某種屬性。給變量賦值一個(gè)空的對(duì)象返回一個(gè)的函數(shù),將函數(shù)的參數(shù)的帶入并賦值,返回。 VUE 2.6.8 (function (global, factory) { typeof exports === object && type...

    Baaaan 評(píng)論0 收藏0
  • javascript的面向?qū)ο螅玩溂袄^承

    摘要:也就是說,不必在構(gòu)造函數(shù)中添加定義對(duì)象信息,而是可以直接將這些信息添加到原型中。子類的屬性,表示構(gòu)造函數(shù)的繼承,總是指向父類。以前,這些原生構(gòu)造函數(shù)是無法繼承的。 面向?qū)ο?js是一門基于對(duì)象的語言。js中的一切皆對(duì)象; console.log(Object.prototype.toString.call(123)) //[object Number] console....

    Xufc 評(píng)論0 收藏0
  • 標(biāo)準(zhǔn)庫(一)object對(duì)象

    摘要:控制對(duì)象狀態(tài)的方法防止對(duì)象擴(kuò)展。判斷一個(gè)對(duì)象是否被凍結(jié)。返回當(dāng)前對(duì)象對(duì)應(yīng)的值。方法的作用是返回一個(gè)對(duì)象的字符串形式上面代碼表示,對(duì)于一個(gè)對(duì)象調(diào)用方法,會(huì)返回字符串用途通過自定義方法,可以讓對(duì)象在自動(dòng)類型轉(zhuǎn)換時(shí),得到想要的字符串形式。 概述Object()Object 構(gòu)造函數(shù)Object 的靜態(tài)方法「本身的方法Object.keys(),Object.getOwnPropertyNam...

    Muninn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<