相关疑难解决方法(0)

如何在ES2015中编写命名箭头功能?

我有一个函数,我试图转换为ES6中的新箭头语法.它是一个命名函数:

function sayHello(name) {
    console.log(name + ' says hello');
}
Run Code Online (Sandbox Code Playgroud)

有没有办法给它一个没有var语句的名字:

var sayHello = (name) => {
    console.log(name + ' says hello');
}
Run Code Online (Sandbox Code Playgroud)

显然,我只能在定义之后使用此功能.如下:

sayHello = (name) => {
        console.log(name + ' says hello');
    }
Run Code Online (Sandbox Code Playgroud)

ES6中有新的方法吗?

javascript ecmascript-6 arrow-functions

192
推荐指数
3
解决办法
7万
查看次数

我可以在JavaScript中获取当前运行的函数的名称吗?

是否有可能做到这一点:

myfile.js:
function foo() {
    alert(<my-function-name>);
    // pops-up "foo"
    // or even better: "myfile.js : foo"
}
Run Code Online (Sandbox Code Playgroud)

我的堆栈中有Dojo和jQuery框架,所以如果其中任何一个更容易,它们就可用了.

javascript jquery dojo

172
推荐指数
10
解决办法
11万
查看次数

如何使用PhantomJS提交表格

我正在尝试使用phantomJS(这是一个很棒的工具btw!)为我有登录凭据的页面提交表单,然后将目标页面的内容输出到stdout.我能够使用幻像访问表单并成功设置其值,但我不太确定提交表单和输出后续页面内容的正确语法.到目前为止我所拥有的是:

var page = new WebPage();
var url = phantom.args[0];

page.open(url, function (status) {

  if (status !== 'success') {
      console.log('Unable to access network');
  } else {

    console.log(page.evaluate(function () {

      var arr = document.getElementsByClassName("login-form");
      var i;

      for (i=0; i < arr.length; i++) {

        if (arr[i].getAttribute('method') == "POST") {
          arr[i].elements["email"].value="mylogin@somedomain.com";
          arr[i].elements["password"].value="mypassword";

          // This part doesn't seem to work. It returns the content
          // of the current page, not the content of the page after 
          // the submit has been executed. Am I …
Run Code Online (Sandbox Code Playgroud)

javascript forms post phantomjs

161
推荐指数
4
解决办法
12万
查看次数

获取ES6类实例的类名

是否有任何"和谐"方法从ES6类实例中获取类名?以外

someClassInstance.constructor.name
Run Code Online (Sandbox Code Playgroud)

目前我指望Traceur的实施.似乎Babel有一个Function.namepolyfill ,而Traceur没有.

总而言之:ES6/ES2015/Harmony中没有其他方式,ES中没有预期的ATM.接下来.

它可以为未经管理的服务器端应用程序提供有用的模式,但在用于浏览器/桌面/移动设备的应用程序中是不需要的.

巴别使用core-js到填充工具Function.name,应当手动加载Traceur和打字稿应用适当.

javascript ecmascript-6 traceur

142
推荐指数
3
解决办法
8万
查看次数

在严格模式下获取当前函数名称

我需要当前函数名作为字符串来登录我们的日志工具.但arguments.callee.name只能在松散模式下工作.如何获取功能名称"use strict"

javascript strict

16
推荐指数
2
解决办法
6535
查看次数

在Internet Explorer中未定义constructor.name

我在IE浏览器调试工作今天结束的发现constructor.nameundefined.

我创建了以下简单的代码来重现问题:

({}).constructor.name === undefined // => true
Run Code Online (Sandbox Code Playgroud)

是否有任何解决方法可以使这项工作?

也许压倒一些原型?

如果可能,我不想更改语法,因为更改将是主要的.

的jsfiddle

javascript internet-explorer constructor object

12
推荐指数
2
解决办法
7688
查看次数

是否有可能获得给定闭包运行的函数名称?

function MyFunction() {
  closure = function() {
    alert('my parent function name is: '/* now what here ? */);
  }
  closure();
}
MyFunction();
Run Code Online (Sandbox Code Playgroud)

结果应该是 my parent function name is: MyFunction

(对于主持人:我不知道为什么stackoverflow阻止我发送这个问题声称它不符合质量标准.我是否必须输入一些多余的文本才能发送它.)

javascript

7
推荐指数
1
解决办法
2537
查看次数

从内部获取函数名称

假设我有一个功能:

 function test1() {

       }
Run Code Online (Sandbox Code Playgroud)

我想从内部返回"test1".我发现你可以做的arguments.callee就是返回整个函数,然后做一些丑陋的正则表达式.有更好的方法吗?

命名空间函数怎么样?

是否有可能得到他们的名字:例如:

var test2 = 
{
 foo: function() {
    }
};
Run Code Online (Sandbox Code Playgroud)

我想从内部返回foo这个例子.

更新:对于arguments.callee.name Chrome返回空白,IE9返回undefined.它不适用于范围函数.

javascript jquery

5
推荐指数
1
解决办法
1558
查看次数

获取Node.js中正在执行的当前函数的名称

在Node.js中,我试图获取正在执行的当前函数的名称:

function doSomething(req, res) {
  console.log('Function name: ' + doSomething.name);
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但我希望(如果可能)在当前上下文中获取名称。这样,如果以后重命名该方法,则无需手动更改。是否有一个通用对象(即类似于“ this”)指向当前正在执行的功能/当前上下文?谢谢。

javascript node.js

5
推荐指数
2
解决办法
4106
查看次数

如何在严格模式下获取函数名称[正确方法]

arguments.callee不幸的是已弃用,在“严格模式”下使用它会引发错误。

是否有任何新的适当(标准)替代方法可以在实际函数中获取函数名称? 还是会出现在 ECMA6、7 的未来计划中?

最近的答案只不过是肮脏的黑客,对我来说是不可接受的答案。

arguments.callee.caller.name不工作或者(V7.5.0的NodeJS)

javascript node.js strict-mode ecmascript-6

5
推荐指数
1
解决办法
2288
查看次数

从策略范围获取sails请求目标

目前,我尝试建立了一个简单的授权系统(认证已经到位)基于政策体系帆提供(v0.10)应用程序.为此,我需要从我的策略中获取控制器和操作当前请求目标.

我会在政策中粗略地做以下事情:

 module.exports = function (req, res, next) {
     // Get target controller and action
     var target = req.target; // How to do this?
     var action = req.action; // and this?

     // Lookup in database, let through if matches or render error
     User.findOne...
  };
Run Code Online (Sandbox Code Playgroud)

我记得目标信息在某些时候嵌入在请求对象中,但现在没有找到(commit 5d98ec8).

我知道有可能通过模仿sails路由器来解析req.route并获取所需的信息,但我宁愿避免为了策略的唯一目的而复制路由逻辑.

编辑:

可以从请求对象中检索控制器标识,如下所示:

var controller = req.options.controller || req.options.model;
Run Code Online (Sandbox Code Playgroud)

示例请求选项:

{ detectedVerb: { verb: '', original: '/user/:id?', path: '/user/:id?' },
  associations: 
    [ { alias: 'auth', type: 'model', model: 'key' },
      { …
Run Code Online (Sandbox Code Playgroud)

model-view-controller node.js sails.js

4
推荐指数
1
解决办法
2368
查看次数

如何仅打印`this`对象的名称,而不是javascript中的内容?

考虑功能:

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

foo();
Run Code Online (Sandbox Code Playgroud)

如何只打印this对象的名称(窗口或全局......等),而不是它的内容?

javascript

1
推荐指数
1
解决办法
89
查看次数