我最近开始维护其他人的JavaScript代码.我正在修复错误,添加功能,并尝试整理代码并使其更加一致.
以前的开发人员使用两种声明函数的方法,如果背后有原因,我就无法解决.
这两种方式是:
var functionOne = function() {
// Some code
};
Run Code Online (Sandbox Code Playgroud)
function functionTwo() {
// Some code
}
Run Code Online (Sandbox Code Playgroud)
使用这两种不同方法的原因是什么?每种方法的优缺点是什么?有一种方法可以通过一种方法完成,而另一种方法无法完成吗?
该图再次显示每个对象都有一个原型.构造函数Foo也有自己
__proto__的Function.prototype,它又通过其__proto__属性再次引用到Object.prototype.因此,重复,Foo.prototype只是Foo的一个显式属性,它指的是b和c对象的原型.
var b = new Foo(20);
var c = new Foo(30);
Run Code Online (Sandbox Code Playgroud)
__proto__和prototype属性有什么区别?

这个数字来自这里.
javascript prototype prototypal-inheritance javascript-objects
有人能告诉我使用"Object Literal Notation"和JSON对象定义的JavaScript对象之间的主要区别是什么?
根据一本JavaScript书,它说这是一个使用Object Notation定义的对象:
var anObject = {
property1 : true,
showMessage : function (msg) { alert(msg) }
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,为什么它不是JSON对象?仅仅因为它没有使用引号定义?
我对ES6课程有很多疑问.
因为我了解如何使用函数和WebComponent,React等.我没有看到使用它的许多好处.
我想知道使用类的好处是什么.我读到public/private/static将成为ES7的一部分.所以我认为目前没有必要使用它.
此外,类是OOP的概念还是它仍然是一个'javascript对象概念'?这是否意味着我不能使用它来修改它class?或者它只是相同的对象,但有两种不同的方式来声明它.
速度有好处吗?如果你有一个像Big Java app这样的大型应用程序,可能更容易维护/理解?
class
信息:这个问题现在是3个半哟.由于TJ Crowder,答案仍然准确.但是Javascript已经发展了很多!风险自负.
在Firefox 43上使用以下代码打开名为index.html的文件会出现以下错误:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
"use strict";
class RangeIterator {}
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我在控制台中看到以下错误:
SyntaxError: class is a reserved identifier
Run Code Online (Sandbox Code Playgroud)
知道我为什么会收到这个错误吗?