目前我正在学习对象,但我不确定某些单词和描述的术语。我相信你们中的一些人可以在这里帮助我:)
代码示例:
function Person(name) {
this.name = name,
this.introduce = function() {
console.log("My name is " + this.name);
}
}
var jon = new Person("Jon")
jon.introduce();
我的问题:
上面的代码和下面的代码之间实际上有区别吗:
var Person = function(name) {
this.name = name,
this.introduce = function() {
console.log("My name is " + this.name);
}
}
var jon = new Person("Jon")
jon.introduce();
哪个是更好的练习?我猜是第一个代码片段,因为它的代码较少。
2.1 根据开头的代码示例,您是否将以下代码段称为原型?
function Person(name) {
this.name = name,
this.introduce = function() {
console.log("My name is " + this.name);
}
}
2.2 根据开头的代码示例,您将以下代码段称为构造函数(-function) 是否正确?
var jon = new Person("Jon")
谢谢,东方快乐!:)
第一点:大词
function Person(name) {
this.name = name,
this.introduce = function() {
console.log("My name is " + this.name);
}
}
var jon = new Person("Jon")
jon.introduce();
这个函数有一个名字“人”。这称为函数语句。
var Person = function(name) {
this.name = name,
this.introduce = function() {
console.log("My name is " + this.name);
}
}
var jon = new Person("Jon")
jon.introduce();
这个函数是匿名的,没有名字。我们可以分配一个名称,但这不是必需的,因为该变量可用于执行函数。这称为函数表达式。
您可以在此处阅读有关 Function 语句和表达式的更多信息:
https://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/
要点二:执行(吊装)
由于提升的工作方式,分配给变量的函数必须在定义函数后调用。
因此,对于第一种情况,该函数可以在其定义的下方或上方调用。
但是对于第二种情况,必须在它之后调用该函数。因为它存储在一个变量中。在函数返回 undefined 之前调用它。它不会出错。该变量存在于内存空间中,但当时尚未定义。
您可以在此处阅读有关变量和函数提升的更多信息:
http://adripofjavascript.com/blog/drips/variable-and-function-hoisting
第 3 点:函数构造函数:
在您的情况下,用于函数的术语是“函数构造函数”,因为您本质上是使用函数作为 Person 对象的构造函数来定义它的属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句