gpt4 book ai didi

javascript - 简讯 |传递默认设置 |函数声明和 'this'

转载 作者:行者123 更新时间:2023-11-30 18:21:22 25 4
gpt4 key购买 nike

for ( element = 0; element < this.tag_array.length; element++ ) {
document.getElementById( this.tag_array[element] ).addEventListener(
"click", function(){ /* constructor function here */ } ); // jshint.com error #1
}

此代码将在 jshint.com b.c 中导致错误。它不想看到在循环中声明的函数。

但是,如果我传入一个简单的函数引用,那么我无法在不再次破坏 jshint 的情况下提取出“this”。

for ( element = 0; element < this.tag_array.length; element++ ) {
document.getElementById( this.tag_array[element] ).addEventListener(
"click", vFlipBP );
}

现在,当我在 vFlipBP 中使用“this”时,我得到了一个错误 b.c。它期望“this”与构造函数结合使用。

function vFlipBP(){ var foo = this ; } // jshint error #2

正因为如此,我发现不可能让 jsthint.com 在这个特定功能上满意。

没关系关闭 jshint.com 选项。

是否可以编写通过 jshint.com 默认设置的代码。

我只是想了解它产生这些警告/错误的原因。

我并没有因为担心错误而挂断电话(它是可选的,我可以将其关闭)...我只是想知道是否可以通过默认值...有没有我错过的 Angular .

最佳答案

由于您似乎并不关心制作几个相同的功能,因此 JSHint 似乎不介意这一点......

var element;
for ( element = 0; element < 10; element++ ) {
document.getElementById( this.tag_array[element] ).addEventListener(
"click", make_func() );
}

function make_func() {
"use strict";
return function(){ var foo = this; alert(foo); };
}

如果您不使用函数声明语法,它似乎也可以接受...

var element;
var the_func = function(){
"use strict";
var foo = this;
alert(foo);
};


for ( element = 0; element < 10; element++ ) {
document.getElementById( this.tag_array[element] ).addEventListener(
"click", the_func );
}

关于javascript - 简讯 |传递默认设置 |函数声明和 'this',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11961735/

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