向函数添加自定义属性

12 浏览
0 Comments

向函数添加自定义属性

由于存在与我的关键词相关的许多其他问题,因此搜索适当的答案证明很困难,所以我会在这里提问。

众所周知,JavaScript中的函数是对象,它们有自己的属性和方法(更准确地说,是从Function.prototype继承的函数实例)。

我正在考虑为一个函数(方法)添加自定义属性,让我们跳过“为什么?”部分,直接看代码:

var something = {
    myMethod: function () {
        if (something.myMethod.someProperty === undefined) {
            something.myMethod.someProperty = "test";
        }
        console.log(something.myMethod);
    }
}

在使用Firebug的DOM探查器进行检查时,属性按预期定义。然而,由于我不认为自己是JavaScript专家,所以我有以下问题:

  1. 这种方法可以被认为是“正确”和符合标准的吗?它在Firefox中有效,但在Web浏览器中有很多按预期工作但绝不是标准的事情。
  2. 通过为对象添加新属性来改变对象是否是一种良好的做法?
0