js中关于new Object时传参的一些细节分析


Posted in Javascript onMarch 13, 2011

1, 参数是一个对象,核心js对象(native ECMAScript object)或宿主对象(host object),那么将直接返回该对象。
其生成的对象构造器仍然是所传参数对象的构造器。这样造成的后果是虽然该对象是new Object,但其constructor不一定是Object。

function Person(){this.name='jack';} 
var w = new Object(window), 
d = new Object(document), 
p = new Object(new Person()); console.log(w.constructor); //-> Window 
console.log(d.constructor); //-> HTMLDocument 
console.log(p.constructor); //-> Person

2, 参数是基本类型对象,如字符串(String),数字(Number),布尔值(Boolean),将其包装成对象(转换成其对应的包装类)后返回。
var s = new Object('hello'), 
n = new Object(22), 
b = new Object(true); console.log(typeof s); //-> Object 
console.log(typeof n); //-> Object 
console.log(typeof b); //-> Object 
console.log(s.constructor); //-> String 
console.log(n.constructor); //-> Number 
console.log(b.constructor); //-> Boolean

从以上看出,当传参数时,使用new Object生成的对象其构造器不一定指向Object,只有很巧的时候会指向Object,如
var obj1 = new Object, 
obj2 = {}; 
var o1 = new Object(obj1); 
o2 = new Object(obj2); console.log(o1.constructor); //-> Object 
console.log(o2.constructor); //-> Object

以上就能明了为何jquery1.4+中以下代码返回false了
function Person(){this.name='jack';} 
var p = new Person(); 
$.isPlainObject(new Object(4)); //-> false 
$.isPlainObject(new Object('hello')); //-> false 
$.isPlainObject(new Object(true)); //-> false 
$.isPlainObject(new Object(p)); //-> false
Javascript 相关文章推荐
javascript parseInt 函数分析(转)
Mar 21 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
jquery 获取dom固定元素 添加样式的简单实例
Feb 04 Javascript
javascript实现英文首字母大写
Apr 23 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
输入框点击时边框变色效果的实现方法
Dec 26 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
微信小程序实现的canvas合成图片功能示例
May 03 Javascript
layer.confirm()右边按钮实现href的例子
Sep 27 Javascript
重载toString实现JS HashMap分析
Mar 13 #Javascript
JavaScript获取页面上某个元素的代码
Mar 13 #Javascript
jQuery hover 延时器实现代码
Mar 12 #Javascript
js中if语句的几种优化代码写法
Mar 12 #Javascript
鼠标事件延时切换插件
Mar 12 #Javascript
autoIMG 基于jquery的图片自适应插件代码
Mar 12 #Javascript
再谈javascript图片预加载技术(详细演示)
Mar 12 #Javascript
You might like
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python文件操作函数用法实例详解
2019/12/24 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
毕业生物理教师求职信
2013/10/17 职场文书
求职简历中个人的自我评价
2013/12/01 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
机电一体化应届生求职信范文
2014/01/24 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书