摘要:更新感謝行列給了一個(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
摘要:中這樣描述和調(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)...
摘要:用做緩存的高階函數(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ì)象 判斷是...
摘要:創(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...
摘要:也就是說,不必在構(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....
摘要:控制對(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...
閱讀 578·2023-04-25 21:29
閱讀 1104·2023-04-25 21:27
閱讀 1044·2021-11-25 09:43
閱讀 1077·2021-09-29 09:43
閱讀 3614·2021-09-03 10:30
閱讀 2854·2019-08-29 15:26
閱讀 2803·2019-08-29 12:52
閱讀 1741·2019-08-29 11:10