试图澄清此javascript代码
所以我现在正在编写一些代码,我正在努力理解这些代码。我读过一些关于它的文章,似乎代码使用的是对象文字。这是代码试图澄清此javascript代码,javascript,Javascript,所以我现在正在编写一些代码,我正在努力理解这些代码。我读过一些关于它的文章,似乎代码使用的是对象文字。这是代码 var car = function(){ // ... function drive(model, color){ // ... do something } // ... return { start: drive } }(); 在别处调用了另一个文件 car.start(audi, black
var car = function(){
// ...
function drive(model, color){
// ... do something
}
// ...
return {
start: drive
}
}();
在别处调用了另一个文件
car.start(audi, black);
那么这是如何工作的呢。首先,在javascript中,类可以有一个返回方法,而不仅仅是一个方法。返回方法也在调用一个方法?使用对象文字?
我有点困惑
首先,在javascript中似乎有一个类
JavaScript没有类。最接近它们的是构造函数,但这里没有
那么这是如何工作的呢
car
是一个匿名函数的返回值,该函数在定义后立即被调用(在关闭}
后它有()
)
该返回值是使用对象文字创建的对象
该对象文本的
start
属性的值是drive
函数。函数是JavaScript中的第一类对象,因此可以像任何其他类型的对象一样进行传递。看起来您正在建立car的对象,然后从另一个文件调用驱动函数,并通过变量model和color传递值audi和black。然后返回对象的实例(“start”),其中包含变量和操作 这是一种封装模式
car
保存一个对象,其结构如return
语句所示drive
car
是一个具有名为start
的属性的对象,这是drive
的功能定义car.start
,则会得到函数定义本身:
function (model, color) {
...
}
这是因为函数可以分配给变量(一级),而不需要实际调用它们,因此您可以在以后使用自己选择的范围调用预定义函数
如果您调用
car.start(奥迪,黑色)
您将使用给定的参数执行函数,并获得drive
函数返回的任何内容。谢谢昆汀,这现在更有意义了。@Michaelna-请在您的浏览器控制台中查看它的实际操作:顺便说一句,这是一个很好的阅读:)