我偶然发现了这段代码
var Actors = {
init: function(config){
this.config = config;
this.bindEvents();
},
bindEvents: function(){
this.config.letterSelection.on('change',this.fetchActors );
},
fetchActors: function(){
console.log('fetching');
}
};
起初我在想这是什么类型的Javascript。我不知道该搜索什么。所以我想这里问的是适当的
我的理解是var Actors是一个对象。 但是这些呢?
init: function(config){
this.config = config;
this.bindEvents();
},
你具体称之为文字“init”?它被称为对象字面量?在init之后,它附加了一个函数你称之为什么?
我理解代码在做什么。但我不知道用技术术语称它们为什么。 那么这是什么类型的JavaScript?为什么单词“init”对它有一个功能
答案 0 :(得分:3)
你具体称之为文字“init”?它被称为对象字面量?
财产。对象文字是{}
在init之后它附加了一个函数你怎么称呼它?
一种方法。
为什么“init”这个词有一个功能
因为通过将它们分配给对象属性来组织一堆相关的“东西”是有用的。
当函数可以使用this
对与之关联的对象进行操作时,情况会更好。
答案 1 :(得分:2)
JavaScript是一种功能性语言,这意味着函数是其中的第一类对象。所以如果你有一个变量,那么你可以给它分配一些字符串,一些数字,一些对象或一些函数,如下所示:
var a;
a = function() {};
a(); // Call this function
以同样的方式,您可以将函数分配给对象属性,如下所示:
var a = {};
a.myProp = function() {};
a.myProp(); // Call this function
但是当你调用你的函数a.myProp()
时,这个函数也会收到一个名为this
的特殊参数,它指向a
。
因此,在您的情况下,为Actors
分配了对象文字,其具有属性init
,并为其分配了一个函数。您可以将其称为method
,但这是其他OO语言的概念。在这里,它只是一个赋予函数的属性。