相关疑难解决方法(0)

javascript函数是对象吗?

我现在正在努力解决一个Javascript问题,我无法在网上找到解释.我想这是因为我没有输入正确的关键字,这也可能与我为什么要挣扎这个问题有关.

我的基本假设是可以改变对象:

> var x = {'n': 2};
> x['n']
2
> x['n'] = 3;
3
Run Code Online (Sandbox Code Playgroud)

pheww工作.但仍然(函数也是对象):

> var addn = function(a) {
    var n = 2;
    return n + a;
}

> addn(3);
5
> addn['n'] = 3;
3
> addn(3);
5
Run Code Online (Sandbox Code Playgroud)

这次我无法改变'n'.有没有办法解决这个问题,同时保持功能的味道?而不是完全OO.我有一个相关的问题是如何维护函数的依赖性以便进行测试 - 再次没有OO?因为我正在寻找解决方案,但如果可能的话,我也想了解Javascript中的哪种机制让我苦苦挣扎.

干杯,

标记

免责声明:通过提及OO我不打算对OO说任何话.而且我也不打算对VI或Emacs说任何话.如果我以某种方式伤害了你的感情,请跳过这个.

javascript scope function object

10
推荐指数
2
解决办法
9589
查看次数

这些不同的对象创建方法在JavaScript中的适当应用是什么

我不仅仅是一个后端人而不是前端人,但JavaScript让我很感兴趣.我试图围绕我看来是多种不同的对象建模方法.

在过去的几年里,我一直主要编写与此类似的代码(假设加载了jQuery):

var TicketForm = {

    elements: ['input', 'textarea', 'select', 'checkbox'],

    enable: function(form) {
        this.elements.forEach( function(el) {
            form.find(el).prop('disabled', false);
        });
    },

    disable: function(form) {
        this.element.forEach( function(el) {
            form.find(el).prop('disabled', true);
        });
    }
};
Run Code Online (Sandbox Code Playgroud)

这样我就可以简单地调用TicketForm.enable($('#whatever'));启用一个特定的表单,非常类似于PHP中的静态方法调用.

我最近一直在使用PHP中的闭包,我知道它们在JavaScript中也存在(我正在使用它们).我正在努力更彻底地掌握这个概念.在遇到这个令人惊讶的剧本之后:http://codepen.io/stuffit/pen/KrAwx,我决定尝试模仿该作者的编码风格.只是试图复制他的风格,我重写了我的代码:

var TicketForm = function() {
    this.elements = ['input', 'textarea', 'select', 'checkbox'];
};

TicketForm.prototype.enable = function(form) {
    this.elements.forEach( function(el) {
        form.find(el).prop('disabled', false);
    });
};

TicketForm.prototype.disable = function(form) {
    this.elements.forEach( function(el) {
        form.find(el).prop('disabled', true);
    });
};
Run Code Online (Sandbox Code Playgroud)

但是,当我TicketForm.enable($('#whatever'));在这种情况下打电话时,我收到错误

Uncaught TypeError: Object …
Run Code Online (Sandbox Code Playgroud)

javascript oop

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

标签 统计

javascript ×2

function ×1

object ×1

oop ×1

scope ×1