Javascript函数文字?

时间:2012-08-08 06:57:44

标签: javascript json object literals

我偶然发现了这段代码

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”对它有一个功能

2 个答案:

答案 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语言的概念。在这里,它只是一个赋予函数的属性。