如何确定是否使用对象文字或对象构造函数调用创建了对象?
|
更具体地说,您如何确定某个对象是否使用文字创建?
var s1 = new String();
var s2 = \"\"; // Literal
var o1 = new Object();
var o2 = {}; // Literal
var f1 = new Function();
var f2 = function(){}; // Literal
显然,如果您比较上面的任何两个,例如:
var o1 = new Object();
var o2 = {};
alert(o1 == o2);
alert(o1 === o2);
alert(typeof o1);
alert(typeof o2);
...前两个警报将显示false
,而后两个警报将显示[Object object]
举例来说,如果我想这样做:
function isLiteral(obj, type) {
// ...
}
...如何去做呢?
我看了看如何确定对象是否是Javascript中的对象文字,但是它不能回答我的问题。
没有找到相关结果
已邀请:
1 个回复
磨标烫徽啪
...以及这两行之间的区别:
...是两个不同的概念。 第一个是原始值和对象之间的区别,而第二个是...同一事物的不同语法。 字符串,数字和布尔值是原始值,而不是对象,但是可以使用
,
或
包装为对象。因此,
将返回不同的值:
但是,对于对象和功能,两者之间的区别是:
...仅在语法上。
和
具有相同的
和相同的
,使它们在运行时无法区分。