Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果函数可以根据需要重复使用多次,为什么要使用;新";及;这是什么;?_Javascript - Fatal编程技术网

Javascript 如果函数可以根据需要重复使用多次,为什么要使用;新";及;这是什么;?

Javascript 如果函数可以根据需要重复使用多次,为什么要使用;新";及;这是什么;?,javascript,Javascript,我确信我遗漏了一些东西,但我不明白为什么开发人员经常创建函数的新实例。例如,我在许多教程中看到了这个基本概念 function Car(make, model, year) { this.make = make; this.model = model; this.year = year; } var myCar = new Car("Toyota", "Tacoma", 1997); console.log(myCar.make +" " +myCar.model +"

我确信我遗漏了一些东西,但我不明白为什么开发人员经常创建
函数的新实例。例如,我在许多教程中看到了这个基本概念

function Car(make, model, year) {
    this.make = make;
    this.model = model;
    this.year = year;
}

var myCar = new Car("Toyota", "Tacoma", 1997);
console.log(myCar.make +" " +myCar.model +" " +myCar.year);
但是,如果函数可以根据需要多次重用,为什么要创建新实例呢

这个函数似乎可以做同样的事情,我可以根据需要多次使用它

function Car(make, model, year) {
    console.log(make +" " +model +" " +year);
}

car("Toyota", "Tacoma", 1997);
car("Honda", "Civic", 2005);
// etc etc...

使用
new
关键字可以创建对象的实例,然后可以对其进行操作


在第一个示例中,您可以在使用
myCar.model=“Carrera”
创建汽车后更改汽车的型号(例如),方法是说
new car
关键字new做三件事: 1.创建一个新的对象实例,例如BobsCar.model(“…”); 2.将其原型分配给函数的.prototype | BobsCar.prototype等。。。
3.应用对象实例设置为“this”| this.make=make的函数

因为有时候你想要创建对象。当然,在你只记录一些值而不做任何其他事情的代码中,它们是不必要的。我知道你可能是真诚地问这个问题的,但这几乎肯定会引出一个问题!t冲突的观点和半无用的因素,如V8如何使用
new
优化对象创建。简而言之,构造函数从来都不是必需的,有时也很方便。这是Javascript对类的原始实现。它只是碰巧为构造函数使用了一个函数。这是一个类实例化,而不是一个普通的函数调用。@NickWyman我想说更多的是,否决票真的有必要吗?我想职训局被愚弄了,但它的边缘是凯西。这是一个完全合法的问题,如果你不是JS开发人员,那么你可能不知道这是每个人最喜欢的死马。