Javascript 向函数添加属性

Javascript 向函数添加属性,javascript,Javascript,您可以将属性指定给函数,但这是一个好主意吗? 在本例中,我将说明不能在函数内部为函数创建属性,但可以在函数外部创建属性 问:a.problem被认为是ok JavaScript编程实践吗 功能a{ a、 坏=1 } a、 可疑=2 功能d{ 控制台,洛加,坏了 控制台,洛加 } d在函数上添加属性是可以的。事实上,这正是ES6类上的静态方法,这是静态方法的唯一用途;考虑它明确的语言支持。 class Foo { static bar() {} } 'bar' in Foo // t

您可以将属性指定给函数,但这是一个好主意吗? 在本例中,我将说明不能在函数内部为函数创建属性,但可以在函数外部创建属性

问:a.problem被认为是ok JavaScript编程实践吗

功能a{ a、 坏=1 } a、 可疑=2 功能d{ 控制台,洛加,坏了 控制台,洛加 }
d在函数上添加属性是可以的。事实上,这正是ES6类上的静态方法,这是静态方法的唯一用途;考虑它明确的语言支持。

class Foo {
    static bar() {}
}

'bar' in Foo  // true
typeof Foo    // 'function'
在本例中,我将说明不能在函数内部为函数创建属性,但可以在函数外部创建属性


您可以在该函数内部的函数上创建属性,但不调用函数体就希望函数体运行是不合理的。

在函数上放置属性是可以的。事实上,这正是ES6类上的静态方法,这是静态方法的唯一用途;考虑它明确的语言支持。

class Foo {
    static bar() {}
}

'bar' in Foo  // true
typeof Foo    // 'function'
在本例中,我将说明不能在函数内部为函数创建属性,但可以在函数外部创建属性

您可以在该函数内的函数上创建属性,但不调用函数体就希望函数体运行是不合理的

在本例中,我将说明不能在函数内部为函数创建属性,但可以在函数外部创建属性

事实并非如此。可以将属性添加到任何有引用的函数中。问题是您没有调用a,因此a.bad=1行从未有机会运行

功能a{ a、 坏=1 } a、 可疑=2 功能d{ 控制台,洛加,坏了 控制台,洛加 } A. D 在本例中,我将说明不能在函数内部为函数创建属性,但可以在函数外部创建属性

事实并非如此。可以将属性添加到任何有引用的函数中。问题是您没有调用a,因此a.bad=1行从未有机会运行

功能a{ a、 坏=1 } a、 可疑=2 功能d{ 控制台,洛加,坏了 控制台,洛加 } A.
D不应该是这样吗。坏=1?由于a在函数作用域中未定义^no,除非a是构造函数,否则在函数中创建属性也会起作用-您只是从未调用a来运行它。增加一个;在你调用d之前,你会得到1个a.bad的输出。@Damon刚刚测试了它,如果我考虑一下,它实际上是有意义的,因为它引用了全局范围。我从没想过会有这种行为。谢谢c:这可能会有帮助。是的,您可以添加,因为函数也是对象,但如果您使用设计模式,它将始终要求您向对象添加属性,并使用函数对其进行修改。很像OOPS不是应该是这个吗。坏=1?由于a在函数作用域中未定义^no,除非a是构造函数,否则在函数中创建属性也会起作用-您只是从未调用a来运行它。增加一个;在你调用d之前,你会得到1个a.bad的输出。@Damon刚刚测试了它,如果我考虑一下,它实际上是有意义的,因为它引用了全局范围。我从没想过会有这种行为。谢谢c:这可能会有帮助。是的,您可以添加,因为函数也是对象,但如果您使用设计模式,它将始终要求您向对象添加属性,并使用函数对其进行修改。很像OOPSOops。对不起,哎呀。对不起,哎呀。对不起,哎呀。很抱歉。