gpt4 book ai didi

javascript - parent 如何工作?

转载 作者:行者123 更新时间:2023-12-02 06:32:36 24 4
gpt4 key购买 nike

在老师的笔记里找到了一段代码,看不懂。重点是找到函数将返回 TRUE 的“pass”值。您能否在下面回答我的问题(评论),以便我了解这是如何工作的?

<script type="text/javascript">

function findPassword(pass)
{
var b = 1337

//How is this function returning "min" (without the parens?)

function add(x){
b += 84
return min
}

//Same question as above...for "mod" - how is this compiling?

function min(x){
b -= 123
return mod
}

function div(x){
b /= 3
return min
}

function mod(x){
b = b+5+(b%3)
return add
}

//what is the purpose of "fn" if it is not used at all?

var fn = function ()
{
b += 34
return div
}

//WHAT is happening here? "() () ()"

(function (){
b /= 3
return mod
})()()()

if(pass == b*b) {
return true;
} else {
alert("Wrong password !")
return false;
}
}
</script>

最佳答案

所以看看这个:

(function (){
b /= 3
return mod
})()()()

你有这个:

function (){
b /= 3
return mod
}

这是一个函数。您将其包裹在方括号中,然后使用 () 调用它,这称为立即调用的函数表达式 (IIFE)。

那么它返回了什么?它返回 mod,这是一个函数,因此下一个 () 将调用该函数。

mod 返回什么:

function mod(x){
b = b+5+(b%3)
return add
}

它返回函数 add,您可以使用 () 再次调用它。函数 add 恰好返回函数 min,但是因为我们没有更多的 (),所以我们不调用它,所以它基本上是扔掉了。

现在,所有这些都不是暗示这是一种好的结构代码的方式,因为它不是。

至于什么值实际上会使 findPassword 返回 true?好吧,您可以关注每个函数中 b 发生的情况。

...或者,您可以在 IIFE 之后立即粘贴一个 console.log(b); 以查看它的值。您需要的 pass 的值将是该数字的平方。

关于javascript - parent 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061914/

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