欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

两个object各代表啥,该如何解决

更新时间: 2014-01-05 01:51:59 责任编辑: Author_N1

 

两个Object各代表啥
var box = new Object();						
alert(box);

打印的结果是:
Object Object
这里的格式都代表啥呢

--参考方法--
var a = {},
b = function(){},
c = [];
console.log(Object.prototype.toString.call(a));  //"[object Object]"
console.log(Object.prototype.toString.call(b));  //"[object Function]"
console.log(Object.prototype.toString.call(c));  //"[object Array]"


看看,其实这个是为了能查看,对象的类型的

总的来说,就是js中,所有类型都是基于Object的(除了ie8-版本中的dom元素),Function,Array等引用类型,都是继承自Object对象的。

这种获得对象类型的方法,也算是当前比较常用的了,jquery就是用的这个方法。

至于这个字符串的组成,第一个object,我认为是说,这个元素是继承自Object的,第二个Object就是说,它现在属于引用类型中,具体的哪一种,我代码中的方式返回的字符串,并且前后需要有中括号的。

--参考方法--
alert,这函数,咋处理,
对Primitive Types直接输出值。
对非Primitive Types,输出其toString 方法的到的字符串。

toString方法到底怎么处理。
对function Object(){}      Object.prototype.toString  我猜想是这样的。
Object.prototype.toString = function(){
var s = '[object';
var test = [Function,Boolean,Number,String,Array,Date,Object];
var testMap = ['Function','Boolean','Number','String','Array','Date','Object'];
//s +=typeof this;
for(var i=0;i<test.length;i++){
if(this instanceof test[i]){
s +=' ' + testMap[i] + ']';
break;
}
}
return s;
}
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:51:59
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2224/
本文WWW.DOC100.NET DOC100.NET版权所有。