相关疑难解决方法(0)

OO Javascript构造函数模式:新古典主义与原型

我看了道格拉斯克罗克福德关于Javascript好的部分的演讲,我的眼睛被打开了.有一次,他说,"Javascript是唯一一种优秀的程序员相信他们可以有效地使用它而不需要学习它的语言." 然后我意识到,我就是那个人.

在那次演讲中,他做了一些声明,对我而言,非常令人惊讶和富有洞察力.例如,JavaScript是地球上最重要的编程语言.或者它是这个星球上最流行的语言.并且,它以许多严肃的方式被打破.

对我来说,他最令人惊讶的声明是"新危险".他不再使用它了.他也this没用.

他为Javascript中的构造函数提供了一个有趣的模式,一个允许私有和公共成员变量的模式,并且既不依赖new也不依赖this.它看起来像这样:

// neo-classical constructor
var container =  function(initialParam) {
    var instance = {}; // empty object 

    // private members
    var privateField_Value = 0;
    var privateField_Name = "default";

    var privateMethod_M1 = function (a,b,c) {
        // arbitrary
    }; 

    // initialParam is optional
    if (typeof initialParam !== "undefined") {
        privateField_Name= initialParam;
    }

    // public members
    instance.publicMethod = function(a, b, c) {
        // because of closures,
        // can call private methods …
Run Code Online (Sandbox Code Playgroud)

javascript oop constructor class-design

43
推荐指数
4
解决办法
1万
查看次数

这个"(function(){});",括号内的函数在javascript中是什么意思?

可能重复:
这是什么意思?(function(x,y)){...}){a,b); 在JavaScript
中围绕JavaScript对象/函数/类声明的括号是什么意思?

大家好

我不知道以下是什么:

(function(){
  // Do something here
  ...
})(someWord) //Why is this here?;
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 将函数放在括号内是什么意思.ie (function(){});
  2. 括号组在函数末尾的作用是什么?

我通常在jquery代码和其他一些javascript库中看到这些.

javascript scope coding-style anonymous-function javascript-namespaces

30
推荐指数
5
解决办法
1万
查看次数