我已经搜索了大约30分钟。
调用此方法无效。
无论如何,alert (a())
将返回false但是回发。
function a()
{
var a = new Boolean();
return a;
}
但是有效,没有回复:
function a()
{
var a = new Boolean();
a = false;
return a;
}
答案 0 :(得分:1)
你如何放置OnClientClick? Javascript返回false并且.NET返回false不一样。如果你的代码是
<asp:ImageButton runat="server" OnClientClick="a()" />
然后只有javascript返回false。让.NET使用return知道响应:
<asp:ImageButton runat="server" OnClientClick="return a()" />
答案 1 :(得分:0)
最有可能的是,使用您的函数的代码期望false
不是“假”。如果对象new Boolean()
被强制为布尔值,则返回false。但是,对象 new Boolean()
与值 false
不同。
new Boolean() == false; // this is true
new Boolean() === false; // this is false!
最有可能的是,消费代码正在进行===
比较,而不是进行==
比较。只是做:
function a()
{
var b = false;
return b;
}
答案 2 :(得分:0)
布尔值是一个对象,你必须返回
function a()
{
var a = new Boolean();
return a.valueOf();
}
答案 3 :(得分:-1)
在这个函数中
function a()
{
var a = new Boolean();
return a;
}
你声明var a = new Boolean();并返回布尔对象NOT VALUE
您键入将其强制转换为布尔值但未设置值,这意味着它未定义
你的功能
function a()
{
var a = new Boolean();
a = false;
return a;
}
您正在指定一个布尔对象,然后将其重新指定为布尔值false并返回布尔变量false;
你也可以这样做。
function a()
{
return false;
}
答案 4 :(得分:-1)
如果某个方法没有返回任何内容,它在技术上会返回“falsey”,因此为了避免歧义,浏览器需要返回“真假”。所以在你的情况下你可以这样做:
function a()
{
var a = new Boolean();
return !!a;
}
!!将你的值转换为真正的布尔值