gpt4 book ai didi

javascript - 向函数添加属性

转载 作者:行者123 更新时间:2023-11-30 07:54:42 28 4
gpt4 key购买 nike

您可以将属性分配给函数,但这是个好主意吗?在此示例中,我展示了您无法在函数内部为函数创建属性,但您可以在函数外部创建属性。

问:a.questionable 是否被认为是 ok 的 JavaScript 编程实践?

function a() {
a.bad = 1
}
a.questionable = 2

function d() {
console.log(a.bad)
console.log(a.questionable)
}
d()

这个问题的灵感来自 JavaScript: Understanding the Weird Parts

最佳答案

In this example, I'm showing that you can't create a property to a function inside the function, but you can outside it.

其实不是这样的。您可以在引用函数的任何地方向函数添加属性。问题是您还没有调用 a(),因此 a.bad = 1 行从未有机会运行。

function a() {
a.bad = 1
}
a.questionable = 2

function d() {
console.log(a.bad)
console.log(a.questionable)
}
a()
d()

Q: Is a.questionable considered an ok JavaScript programming practice?

jQuery 相当广泛地使用它(想想 jQuery.fnjQuery.extend 等)——所以不,我不认为它被认为是“坏的” “编程实践本身。事实上,在 ES6 将它们作为 class syntax 的一部分引入之前,向构造函数添加属性是模仿静态字段和方法的唯一方法。 .

function Constructor() {

}
Constructor.staticMethod = function () {
return "I'm a static method!"
}

Constructor.staticProperty = "I'm a static property!"

console.log(
Constructor.staticMethod(),
Constructor.staticProperty
)

关于javascript - 向函数添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43147904/

28 4 0
文章推荐: Javascript将对象的字符串化数组转换为对象数组
文章推荐: javascript - 函数参数的解析顺序是否有保证?
文章推荐: JavaScript (jQuery) 只是不断将数据附加到
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com