相关疑难解决方法(0)

var functionName = function(){} vs function functionName(){}

我最近开始维护其他人的JavaScript代码.我正在修复错误,添加功能,并尝试整理代码并使其更加一致.

以前的开发人员使用两种声明函数的方法,如果背后有原因,我就无法解决.

这两种方式是:

var functionOne = function() {
    // Some code
};
Run Code Online (Sandbox Code Playgroud)
function functionTwo() {
    // Some code
}
Run Code Online (Sandbox Code Playgroud)

使用这两种不同方法的原因是什么?每种方法的优缺点是什么?有一种方法可以通过一种方法完成,而另一种方法无法完成吗?

javascript syntax idioms function

6645
推荐指数
32
解决办法
98万
查看次数

方法和函数之间有什么区别?

有人可以在OOP上下文中提供方法函数的简单解释吗?

language-agnostic oop methods terminology function

1665
推荐指数
23
解决办法
67万
查看次数

JavaScript中的函数表达式与声明有什么区别?

以下代码行之间有什么区别?

//Function declaration
function foo() { return 5; }

//Anonymous function expression
var foo = function() { return 5; }

//Named function expression
var foo = function foo() { return 5; }
Run Code Online (Sandbox Code Playgroud)
  • 什么是命名/匿名函数表达式?
  • 什么是声明的功能?
  • 浏览器如何以不同方式处理这些结构?

对类似问题(var functionName = function(){} vs function functionName(){})的响应是不是完全正确?

javascript

469
推荐指数
4
解决办法
15万
查看次数

javascript:将方法添加到字符串类

我希望能在javascript中说出类似的内容:

   "a".distance("b")
Run Code Online (Sandbox Code Playgroud)

如何将自己的距离函数添加到字符串类?

javascript

51
推荐指数
5
解决办法
5万
查看次数

超级关键字出乎意料

根据ES6速记初始化,以下两种方法是相同的:

在ES5中

var person = {
  name: "Person",
  greet: function() {
     return "Hello " + this.name;
  }
};
Run Code Online (Sandbox Code Playgroud)

在ES6中

var person = {
  name: "Person",
  greet() {
     return "Hello " + this.name;
  }
};
Run Code Online (Sandbox Code Playgroud)

ES6的方式与之前的方式有什么不同吗?如果不是那么在它们里面使用"超级"也应该被视为相等,这不符合,请看下面的两个变量:

下面的工作

let person = {
  greet(){
   super.greet(); 
  }
};

Object.setPrototypeOf(person, {
  greet: function(){ console.log("Prototype method"); }
});

person.greet();
Run Code Online (Sandbox Code Playgroud)

下面失败了

let person = {
  greet: function(){
   super.greet(); // Throw error: Uncaught SyntaxError: 'super' keyword unexpected here
  }
};

Object.setPrototypeOf(person, {
  greet: function(){ console.log("Prototype method"); }
}); …
Run Code Online (Sandbox Code Playgroud)

super ecmascript-6

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