0

这里有一个菜鸟问题:看到一个 jQuery 代码是这样写的:

    var PRINCIPAL = {};

PRINCIPAL.Function = function($element) {
    var self = this;
    /*more vars*/

    this.init = function() {
        self.initialFunction();
    };
    this.initialFunction = function() {
        /*code here*/
    };
    this.secondOne = function() {
        /*code here*/
    };
    this.init();
};
    /*associative array below??*/
PRINCIPAL.array = {
    CONFIGURATION: 10,
    CONFIGURATION2: 200,
    init: function($element) {
        /*code here*/
    },
    firstFunction: function() {
        /*code here*/
    },
    secondOne: function() {
        /*code here*/
    },  
    thirdOne: function() {
        /*code here*/
    }
};
/*and at the end it stars all functions inside the blocks*/
$(function() {
    PRINCIPAL.array.init($('#element'));
});

好的,现在:上面有很多数组(?),还有一些其他的函数,所有的代码都被分成了块。我不太明白,这是一种编程风格还是什么?

4

3 回答 3

1

这是对象符号。不过,它并不是写得特别好的代码,因此您可能不想将其用作学习示例。

不过,一般原则是{}表示一个对象,因此PRINCIPAL通过赋值成为一个对象。点符号允许您轻松访问对象的参数和方法,因此第一个块定义一个方法(或函数),第二个块定义一个参数,在这种情况下是另一个对象。在此示例中,方法和参数使用对象文字表示法在其中定义了更多方法/参数。

如果您有兴趣,这里是面向对象 javascript 的基本介绍。

于 2013-05-20T13:41:14.310 回答
0

That is a common (and good) question.

Take a look here: http://ejohn.org/apps/learn/

Start with 'Named Functions' and work your way down.

The code in your example uses the techniques in this tutorial. The example, is poorly written, though.

于 2013-05-20T13:48:51.797 回答
0

在 JavaScript 中,{}表示对象而不是数组。(但您可以将对象本质上视为关联数组或哈希。)

都是function() {}匿名函数,这里用来将函数存储在变量中,稍后执行(函数只是对象,可以存储)。PRINCIPAL.array这里本质上是一个伪类,因为闭包可以用来模拟 JavaScript 中的类(JS 没有内置类)。

于 2013-05-20T13:44:03.343 回答