小编use*_*374的帖子

javascript模块模式从你不知道JS

我已经阅读并测试了下面的代码几个小时了,我似乎无法掌握某些东西.我一直在逐步通过chrome控制台,基本上我可以添加的每一行都有突破并且一直在检查,我只是不确定事情

1)我只是不确定deps数组的目的.对我来说第一件奇怪的事情是,为什么脚本没有尝试将数据放在第一次调用它(来自MyModules.define("bar",[],function())?为什么脚本第二次调用define(MyModules.define("foo",["bar"], function(bar),然后在第一次定义应该首先完成它时将["bar"]添加到数组?

2)这段代码modules[name] = impl.apply(impl,deps).每个回调,不要使用'this'..所以在这里申请是必要的吗?此外,当使用'apply'时,这可能是我在回调中缺乏理解,但是如何读取这个呢?我认为'应用'通常会发生 functionName.apply(obj,[])

在这种情况下,这几乎就像是说 functionName.apply(functionName, []) ?? 或者这是不同的,因为函数本身是匿名的?

    var MyModules = (function Manager() {
        var modules = {};

        function define(name,deps,impl) {
            for ( var i=0; i<deps.length; i++) {
                deps[i] = modules[deps[i]];
            }
            modules[name] = impl.apply(impl,deps);
        }

        function get(name) {
            return modules[name];
        }

        return {
            define : define,
            get: get
        };
    })();

    MyModules.define("bar",[],function() {
        function hello(who) {
            return "Let me introduce: " + who;
        }

        return {
            hello : hello
        }; …
Run Code Online (Sandbox Code Playgroud)

javascript module callback

7
推荐指数
1
解决办法
764
查看次数

原型/对象语句和链遍历需要澄清

虽然仍在努力阅读"你不懂JS",但我开始有了好主意(喜欢这个系列).我想我已经掌握了原型,但我遇到了下面的代码.

   var myObject = {
     a:2
   };

   Object.getOwnPropertyDescriptor(myObject, "a");
Run Code Online (Sandbox Code Playgroud)

虽然我完全理解输出及其含义,但我试图使用我对原型的理解(或缺乏),并希望在下面做.

   myObject.getOwnPropertyDescriptor
Run Code Online (Sandbox Code Playgroud)

我认为它会向上遍历原型链最多的对象原型和获取方法,但事实证明,对象的原型没有这个(假设这不是对象的原型的一部分,我找了DOC,至少我不要把它看作原型的一部分,它说它是一种方法).因此,我假设这只是Object.getOwnPropertyDescriptor,而不是Object.prototype.getOwnPropertyDescriptor.

我是否正确理解了这一点,为什么Object的方法不适用于所有原型?

javascript

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

当c指针独立时,很难理解它们

我正在研究c的指针,这个位置*确实让我很困惑.

我明白什么int *a是......

但是是什么

a = malloc(n * sizeof(int) ) 
Run Code Online (Sandbox Code Playgroud)

我明白上面做了什么,但为什么它*本身就在中间?这部分真让我困惑,所以请有人向我解释一下吗?

c pointers

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

perl perlpacktut对我没有意义

我真的很困惑perl的打包和解包定义.以下是perl.doc.org的摘录

pack函数将值转换为包含根据给定规范的表示的字节序列,即所谓的"模板"参数.unpack是相反的过程,从字节串的内容中导出一些值.

因此我认为pack需要人类可读的东西(例如A)并将其转换为二进制格式.我这个解释错了吗?

所以这就是我的解释,但是然后同样的文件会立即进行这个例子,这使我的理解正好相反.

my( $hex ) = unpack( 'H*', $mem );
print "$hex\n";
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

perl

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

理解c指针时难以理解它(第2部分)

当我看到实际的乘法时,我问了这个问题,每个人都帮助清楚了解它.(所以我非常感激).

然而,这在不同情况下继续困扰我.

举个例子,

int main(int argc, const char * argv[] )
Run Code Online (Sandbox Code Playgroud)

为什么不在上面写上面的?

int main(int argc, const char *argv[] ) 
Run Code Online (Sandbox Code Playgroud)

有差异吗?有时我会看到一些时髦的位置*我只是不明白为什么他们有时似乎漂浮在任何他们喜欢的地方(或者谁知道他们在做什么我猜).

c pointers

2
推荐指数
1
解决办法
70
查看次数

Github 和生产服务器

如果一个人在本地计算机上开发他的代码,并将其更改签入 github,那么这如何从那里转到生产环境呢?

假设您有一个生产服务器,运行您正在处理的代码。当我完成代码工作并推送到 github 后,如何自动将最新的变更集放到生产服务器上?(除了 scp'ing)。我想我正在寻找执行此操作的传统方法是什么。

github

1
推荐指数
1
解决办法
1747
查看次数

标签 统计

c ×2

javascript ×2

pointers ×2

callback ×1

github ×1

module ×1

perl ×1