gpt4 book ai didi

javascript - 仅在匿名函数中未捕获类型错误

转载 作者:行者123 更新时间:2023-12-02 14:00:57 25 4
gpt4 key购买 nike

我有以下代码来为 div 制作动画。它运行完美:

function fadeAndSlideIn(el,m,t) {
el.style.opacity = 0;
el.style.marginTop = 0;

var oi = 1 / (t * 60);
var mi = m / (t * 60);

var tick = function() {
el.style.opacity = +el.style.opacity + oi;
el.style.marginTop = (parseInt(el.style.marginTop) + mi) + 'px';

if (+el.style.opacity < 1)
(window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
}

tick();
}

(function() {
fadeAndSlideIn(document.getElementById('pan1'),125,1);
setTimeout(function() {
fadeAndSlideIn(document.getElementById('pan2'),125,1);
},500);
setTimeout(function() {
fadeAndSlideIn(document.getElementById('pan3'),125,1);
},1000);
})();

但是当我更改 fadeAndSlideIn 时函数到匿名函数,如下所示:

var fadeAndSlideIn = function(el,m,t) {

我的程序无法运行,出现以下错误

Uncaught TypeError: Cannot set property 'opacity' of undefined

为什么函数减速会改变性能?所有代码都在 <script 中> 标签位于正文末尾。

最佳答案

JS 具有自动分号插入功能。这并不聪明,因为有时引擎无法做到这一点,并且会产生错误。所以总是使用分号:

var a=function(){} //bad
var a=function(){}; //good

在你的代码中,引擎失败了,因为正如 Felix Kling 所说,它认为它是 IIFE:

var a=function(){}
(some other code);

所以实际上它将你的 IIFE 作为 el 传递给 fad​​eInSlide,并且你的函数的 el.style 是未定义的......

关于javascript - 仅在匿名函数中未捕获类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40429284/

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