摘要:更新感謝行列給了一個更加精簡的方法實現(xiàn)重點在和方法很笨拙,不知道有沒有大神給改改的,或者有什么可替換的系統(tǒng)方法。總結(jié)一行神奇的代碼會還原到
更新:
感謝 @行列[xxooyy] 給了一個更加精簡的方法實現(xiàn):
String.prototype.toFunction=function(){ return eval("("+this+")")}; //重點在"("和")"
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)); //會還原到fn
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/80844.html
摘要:中這樣描述和調(diào)用方法用來把對象轉(zhuǎn)換成原始類型的值數(shù)值字符串和布爾值。你很少需要自己調(diào)用此函數(shù)當(dāng)遇到一種需要轉(zhuǎn)換成一個原始值情況時候,會自動調(diào)用此函數(shù)。默認(rèn)情況下會被每個對象繼承。 MDN 中這樣描述 valueOf() 和 toString(): JavaScript 調(diào)用 valueOf() 方法用來把對象轉(zhuǎn)換成原始類型的值(數(shù)值、字符串和布爾值)。 你很少需要自己調(diào)用此函數(shù);當(dāng)...
摘要:用做緩存的高階函數(shù)用高階函數(shù)的好處是無需暴露不同要求的緩存對象在外面,形成一個閉包。函數(shù)內(nèi)部調(diào)用函數(shù)得到操作后的值,并緩存在對象中,如果再對同一個值進行操作時,則直接從緩存中取,無需再調(diào)用函數(shù)計算。 以下摘取的函數(shù),在 shared 目錄下公用的工具方法。文件在 util.js 中,githu地址。 提取了一些常用通用的函數(shù)進行剖析,主要包含以下內(nèi)容: 創(chuàng)建一個被凍結(jié)的空對象 判斷是...
摘要:創(chuàng)建一個自調(diào)用匿名函數(shù),設(shè)計參數(shù),并傳入對象。表示獨一無二的值聲明時不能使用,而是聲明時可以加參數(shù),用于描述作為時不能被遍歷這個函數(shù)主要是檢測當(dāng)前對象是否有某種屬性。給變量賦值一個空的對象返回一個的函數(shù),將函數(shù)的參數(shù)的帶入并賦值,返回。 VUE 2.6.8 (function (global, factory) { typeof exports === object && type...
摘要:也就是說,不必在構(gòu)造函數(shù)中添加定義對象信息,而是可以直接將這些信息添加到原型中。子類的屬性,表示構(gòu)造函數(shù)的繼承,總是指向父類。以前,這些原生構(gòu)造函數(shù)是無法繼承的。 面向?qū)ο?js是一門基于對象的語言。js中的一切皆對象; console.log(Object.prototype.toString.call(123)) //[object Number] console....
摘要:控制對象狀態(tài)的方法防止對象擴展。判斷一個對象是否被凍結(jié)。返回當(dāng)前對象對應(yīng)的值。方法的作用是返回一個對象的字符串形式上面代碼表示,對于一個對象調(diào)用方法,會返回字符串用途通過自定義方法,可以讓對象在自動類型轉(zhuǎn)換時,得到想要的字符串形式。 概述Object()Object 構(gòu)造函數(shù)Object 的靜態(tài)方法「本身的方法Object.keys(),Object.getOwnPropertyNam...
閱讀 635·2023-04-25 21:29
閱讀 1195·2023-04-25 21:27
閱讀 1112·2021-11-25 09:43
閱讀 1175·2021-09-29 09:43
閱讀 3692·2021-09-03 10:30
閱讀 2927·2019-08-29 15:26
閱讀 2884·2019-08-29 12:52
閱讀 1815·2019-08-29 11:10