- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
可以使用 typeof
来确定一个值是原始值还是装箱值。
考虑:
typeof "foo"; // "string"
typeof new String("foo"); // "object"
结合 Object.prototype.toString
我们可以定义以下两个函数
var toString = Object.prototype.toString;
var is_primitive_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "string";
};
var is_boxed_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "object";
};
这两个功能是否有任何用例? (或 Number
、Boolean
等类似函数)。
这个问题背后的概念来自以下Comment by T.J.Crowder .
我们是否应该关心我们拥有的值是原始值还是盒装值?
最佳答案
我想说这几乎没有意义,您几乎从不关心您是在处理 string
原语还是 String
对象。
有一些极端情况。例如,String
对象是一个实际对象,您可以向其添加属性。这使您可以执行以下操作:
function test(arg) {
arg.foo = "bar";
}
如果调用代码传入一个字符串
原始:
var s1 = "str";
test(s1);
...arg
被提升为 String
对象并向其添加属性,但未使用该 String
对象通过 test
返回后的任何内容。
相反,如果调用代码传入一个String
object:
var s2 = new String("str");
test(s2);
...然后该属性被添加到该对象并且调用代码可以看到它。考虑 ( live copy ):
var s1, s2;
s1 = "str";
display("[Before] typeof s1.foo = " + typeof s1.foo);
test(s1);
display("[After] typeof s1.foo = " + typeof s1.foo);
s2 = new String("str");
display("[Before] typeof s2.foo = " + typeof s2.foo);
test(s2);
display("[After] typeof s2.foo = " + typeof s2.foo);
function test(arg) {
arg.foo = "bar";
}
输出:
[Before] typeof s1.foo = undefined[After] typeof s1.foo = undefined[Before] typeof s2.foo = undefined[After] typeof s2.foo = string
请注意 s2.foo
是一个字符串,但 s1.foo
不是(因为 s1
是一个字符串 原始的,我们在 test
中提升它时创建的对象与调用代码无关)。
这有什么用例吗?不知道。如果是这样,我会说这将是一个非常前卫的边缘案例。
关于javascript - 值是原始值还是盒装值是否重要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793228/
我正在努力寻找任何教程来帮助我将 SurfaceView 放入盒子中。一个指向正确方向的指针会很棒——而不是通过它寻找一只手。 我希望能够在屏幕顶部分配一个区域,例如做按钮等,然后让表面 View 填
我需要一个返回所提供类类型实例的方法。让我们假设提供的类型被限制为可以创建它们的“空”实例。例如,提供 String.class 将返回一个空字符串,提供一个 Integer.class 将返回一个初
小问题:是否保证此代码始终打印 true? Boolean b1 = true; Boolean b2 = true; System.out.println(b1 == b2); boolean 值的
我昨晚在开发一个应用程序时遇到了一个特定的问题,我确信它可能有一个有效的算法来解决它。谁能推荐一下? 问题: TL;DR:也许图片会有所帮助:http://www.custom-foam-insert
我正在使用 ggplot2 开发一个图形,其中我需要将文本叠加在其他图形元素上。根据文本下方元素的颜色,文本可能难以阅读。有没有办法在半透明背景的边界框中绘制geom_text? 我可以用plotri
使用 rustc 1.10.0,我正在尝试编写一些绕过盒装闭包的代码——最终目标是按程序生成分形动画。现在我有一些像这样的函数签名: pub fn interpolate_rectilinear(wi
这个问题在这里已经有了答案: The trait bound `futures::Future, Error=Box>: Send` is not satisfied (1 个回答) Sending
我是一名优秀的程序员,十分优秀!