try/catch块中的return语句如何工作?
function example() {
try {
return true;
}
finally {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我期待这个功能的输出true
,但它是false
!
我知道这样做
url_for(:only_path => false, :controller => 'home')
Run Code Online (Sandbox Code Playgroud)
我会得到,例如,http:// localhost/home
但我如何处理生成http:// localhost
我正在使用object literal来创建一个带有方法的对象.
这是一个简单的例子.
var SizeManager = {
width : 800,
height : 600,
ratio : this.width / this.height,
resize : function (newWidth) {
width = newWidth;
height = newWidth / ratio;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是SizeManager.ratio返回" NaN ".我很确定这是一个初始化问题.
有没有办法获得正确的比率值?
有没有办法为对象文字分配一个costructor或初始化器?
是定义构造函数objcet的唯一方法吗?
编辑:当然,SizeManager理想情况下是一个单例(只有一个对象),这就是我使用对象文字的方式.
我的 javascript 代码打开一些窗口槽:
var win = window.open();
Run Code Online (Sandbox Code Playgroud)
我将 win 引用与所有其他打开的窗口一起存储在一个数组中。
一切正常,直到开启器刷新为止。
所以我想要实现的是在加载“主”窗口时取回对打开的窗口的所有引用。
为了实现这一点,我必须:
1. 保留卸载时的所有引用 2. 取回加载时的引用 3. 使用新的 opener 更新引用
是否可以?如果是这样怎么办?
可能重复:
为什么这种转换不起作用?
嗨,我发现了一个奇怪的框架行为.此代码抛出异常:
byte a = 1;
object b = a;
Console.WriteLine(b.GetType());
Console.WriteLine((byte)b);
Console.WriteLine((int)(byte)b);
Console.WriteLine(Convert.ToInt32(b));
Console.WriteLine((int)b);
Run Code Online (Sandbox Code Playgroud)
最后一行抛出System.InvalidCastException.
我想知道框架中使这段代码非法的机制是什么.
这是装箱/拆箱的问题吗?!
javascript ×3
.net ×1
c# ×1
casting ×1
constructor ×1
return ×1
try-catch ×1
try-finally ×1
value-type ×1
window ×1