gpt4 book ai didi

javascript - method.toString() 排除/包含 'use strict'

转载 作者:行者123 更新时间:2023-11-29 21:54:34 25 4
gpt4 key购买 nike

method.toString() 在 Firefox 中添加“use strict”,而不是在 IE 或 Chrome 中。

Javascript 代码:

'use strict';
var myMethod = function foo(){return 1};
result = myMethod.toString();
console.log(result);

Plunker to reproduce it

结果:

  • Chrome 39.0:“函数 foo(){return 1}”
  • 互联网 11:“function foo(){return 1}”
  • Firefox 33.1: "function foo(){ "use strict"; return 1}"

是否有可能以某种方式定义指令“use strict”应该包含/排除在 toString() 中?

最佳答案

您可以尝试使用它来确定严格模式并将其“插入”到 toString 结果中:

var strictMode = (function() { return !this; })() ? '"use strict"; ' : '';
var result = myMethod.toString()
.replace(/"use strict";/, '') // FF prevent doubling
.replace(/{/, '{'+strictMode);

查看更新 Plunker或查看代码片段

'use strict';

var strictMode = (function() { return !this; }()) ? '"use strict"; ' : '';
var myMethod = function foo(){return 1};

$(function(){
$("#function").append(
myMethod.toString()
.replace(/"use strict";/, '') // to prevent a double 'use strict' in firefox
.replace(/{/, '{'+strictMode) );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Hello stackOverflow!</h1>
<h2>My Function to String</h2>
<p id="function"></p>

关于javascript - method.toString() 排除/包含 'use strict',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27126840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com