0

我偶然发现了这段代码

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”称为什么?它被称为对象文字吗?在初始化之后,它附加了一个函数,你怎么称呼它?

我明白代码在做什么。但我不知道用技术术语如何称呼它们。那么这是什么类型的javascript?为什么“init”这个词有它的功能

4

2 回答 2

3

您具体将文字“init”称为什么?它被称为对象文字吗?

一个财产。对象字面量是{}

在初始化之后,它附加了一个函数,你怎么称呼它?

一个方法。

为什么“init”这个词有它的功能

因为通过将它们分配给对象属性来组织一堆相关的“东西”很有用。

this当函数可以用来对与之关联的对象进行操作时,情况就更是如此了。

于 2012-08-08T06:59:28.527 回答
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 语言的概念。在这里,它只是一个分配了功能的属性。

于 2012-08-08T07:05:10.767 回答