自产生程序

栏目: JavaScript · 发布时间: 6年前

内容简介:自产生程序(Quine)指的是不接受任何输入,也不直接读取源码,输出结果为自身源码的程序。各语言都有其实现,下面介绍 JavaScript 的一个例子。以下面一个函数为例。我们可以通过调用其

自产生程序(Quine)指的是不接受任何输入,也不直接读取源码,输出结果为自身源码的程序。各语言都有其实现,下面介绍 JavaScript 的一个例子。

以下面一个函数为例。

function foo() { console.log('foo'); }

我们可以通过调用其 toString 方法来获得其源码。

foo.toString()

所以可以改造一下函数 foo ,如下所示:

function foo() { console.log(foo.toString()); }

此时,我们只是声明了一个函数,仍然需要手动执行触发。所以我们可以通过 IIFE 来改进。

(function foo() { console.log(foo.toString()); })()

执行以上代码,得到的结果如下:

function foo() { console.log(foo.toString()); }

和源码比较,缺少了引入 IIFE 后增加了括号。所以进一步完善如下:

(function foo() { console.log('(' + String(foo) + ')()'); })()

此时的输出和源码相等。

参考


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Remote

Remote

Jason Fried、David Heinemeier Hansson / Crown Business / 2013-10-29 / CAD 26.95

The “work from home” phenomenon is thoroughly explored in this illuminating new book from bestselling 37signals founders Fried and Hansson, who point to the surging trend of employees working from hom......一起来看看 《Remote》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器