gpt4 book ai didi

javascript - 这个 JavaScript 是如何工作的?

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

我之前在搜索如何使用 JavaScript 淡入淡出元素时遇到了这个函数(对象)。我开始想知道它是如何工作的?

var fadeEffect=function(){
return{
init:function(id, flag, target){
this.elem = document.getElementById(id);
clearInterval(this.elem.si);
this.target = target ? target : flag ? 100 : 0;
this.flag = flag || -1;
this.alpha = this.elem.style.opacity ? parseFloat(this.elem.style.opacity) * 100 : 0;
this.si = setInterval(function(){fadeEffect.tween()}, 20);
},
tween:function(){
if(this.alpha == this.target){
clearInterval(this.elem.si);
}else{
var value = Math.round(this.alpha + ((this.target - this.alpha) * .05)) + (1 * this.flag);
this.elem.style.opacity = value / 100;
this.elem.style.filter = 'alpha(opacity=' + value + ')';
this.alpha = value
}
}
}
}();

我知道这是自调用,只返回一个对象和两个方法。我主要关心的是为什么它使用 this 关键字?我假设“this”关键字是对象名称“fadeEffect”的占位符。如果“this”用于创建多个对象,我会理解...但为什么在这里使用它?

另一件困扰我的事情是这个三元运算符......

   this.target = target ? target : flag ? 100 : 0;

这到底是怎么回事?这就像两个三元运算符合二为一,我从来没有想过这是可能的?

最佳答案

关于第二个问题。这可能会使它更清楚:

this.target = (target ? target : (flag ? 100 : 0));

所以是的,一个嵌套的三元运算符!用文字写出来:

this.target =(target 是真值吗?然后使用 target。如果不是,则使用上一部分的结果 ->(flag 是真值吗?使用 100。否则,使用 0))。

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

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