gpt4 book ai didi

javascript - 让函数更改调用它的变量引用是错误的吗?

转载 作者:太空狗 更新时间:2023-10-29 15:49:18 24 4
gpt4 key购买 nike

JavaScript 拥有无限的灵 active 。我决定利用它并让函数在第一次调用时自行更改。这是一件坏事吗?它是这样工作的:

(function(){
var nextAfter = function(){};
Something.prototype.next = function(){
//do pre-start actions.
this.next = nextAfter;
};
})();

这个函数在主循环内部被调用,所以它被调用了很多次,但是这个实例只“应该”被实例化一次。

最佳答案

这是一件非常合理的事情。

例如,它可能是一种在状态机中实现状态更改的有用方法,但我相信您可以找到许多其他用途。

您可能还想研究如何使用闭包实现相同的功能——根据用例,它可能更简洁。

编辑;不改变原型(prototype)的闭包示例

Something = (function(){
var next = function() { next = nextAfter; console.log("A"); }
var nextAfter = function() { console.log("B"); }

return {
next: function(){ next(); }
}
})();

闭包的好处是您无需更改该对象类型的全局原型(prototype)函数,并且您现在可以拥有多个独立的对象,其中每个闭包对象都可以保持自己的状态。

关于javascript - 让函数更改调用它的变量引用是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com