Javascript 从构造函数返回的原语值将丢失
我创建了一个函数:Javascript 从构造函数返回的原语值将丢失,javascript,jquery,Javascript,Jquery,我创建了一个函数: function CheckHidden(el){ return $(el).css('display')!='none' } 我的IDE警告我: 当使用“new”调用时,从构造函数返回的原语值将丢失 实际上,当我这样称呼它时: var all = $("#catalog-body > div").filter(function(){return CheckHidden(this)}) 它不起作用,也不会将元素集减少为未隐藏的元素。 请给我解释一下这个问题。我非常
function CheckHidden(el){ return $(el).css('display')!='none' }
我的IDE警告我:
当使用“new”调用时,从构造函数返回的原语值将丢失
实际上,当我这样称呼它时:
var all = $("#catalog-body > div").filter(function(){return CheckHidden(this)})
它不起作用,也不会将元素集减少为未隐藏的元素。
请给我解释一下这个问题。我非常缺乏知识。jQuery实际上内置了类似的功能。您可以使用选择器。您只需执行以下操作:
var all=$("#catalog-body > div").filter(':visible')
获取可见元素。jQuery实际上内置了类似这样的功能。您可以使用选择器。您只需执行以下操作:
var all=$("#catalog-body > div").filter(':visible')
获取可见元素。如果要提取所有可见元素,可以使用: 相反,如果要提取所有隐藏的图元,可以将其与以下内容结合使用:
如果要提取所有可见的图元,可以使用: 相反,如果要提取所有隐藏的图元,可以将其与以下内容结合使用:
如果使用关键字
new
(如警告中所述)创建对象,JS将返回对象的新实例,而不是构造函数的返回值
函数
function CheckHidden() {
return false;
}
将返回两个不同的值,具体取决于执行方式
// "a" is boolean value
var a = CheckHidden();
// "a" is an object of type "CheckHidden"
var a = new CheckHidden();
如果使用关键字
new
(如警告中所述)创建对象,JS将返回对象的新实例,而不是构造函数的返回值
函数
function CheckHidden() {
return false;
}
将返回两个不同的值,具体取决于执行方式
// "a" is boolean value
var a = CheckHidden();
// "a" is an object of type "CheckHidden"
var a = new CheckHidden();
我自己也遇到过这个警告,如果您想知道原因,那是因为您的IDE希望函数名以小写字母开头。由于函数名为CheckHidden,大写字母为C,因此它认为它是一个类声明
但是,您仍然应该使用jQuery的:visible选择器来修复您的特定问题。我自己也遇到了这个警告,如果您想知道原因,那是因为您的IDE希望函数名以小写字母开头。由于函数名为CheckHidden,大写字母为C,因此它认为它是一个类声明
但是,您仍然应该使用jQuery的:visible选择器来解决您的特定问题。一个问题中有多个问题。哪一个最能描述您的问题?我不确定您使用的是哪一个IDE,但这是特定于IDE而不是JavaScript的。如果你有一个从未用new实例化的方法,那么忽略这个警告。哪一个最能描述您的问题?我不确定您使用的是哪一个IDE,但这是特定于IDE而不是JavaScript的。如果您有一个从未使用new实例化的方法,请忽略该警告。如果您不想将函数名更改为小写,可以在函数上方使用
/***@返回{boolean}*/
注释行来避免该警告。如果您不想将函数名更改为小写,您可以使用函数上方的/***@returns{boolean}*/
注释行来避免警告。