JavaScript中object和Object的区别(详解)

 更新时间:2017年02月27日 09:39:37   投稿:jingxian  
下面小编就为大家带来一篇JavaScript中object和Object的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

JavaScript中object和Object有什么区别,为什么用typeof检测对象,返回object,而用instanceof 必须要接Object呢

这个问题和我之前遇到的问题非常相似,我认为这里有两个问题需要解决,一个是运算符new的作用机制,一个是function关键字和Funtion内置对象之间的区别。看了一些前辈的博客和标准,这里帮提问者总结一下。

1、new

new运算符的作用是创建一个对象实例。这个对象可以是用户自定义的,也可以是带构造函数的一些系统自带的对象。如果 new 表达式之后的构造函数返回的不是JavaScript内置的引用对象(Object,String等)new会创建一个匿名对象并返回;如果是内置引用对象或者原始类型就会覆盖匿名对象。(无 return 时其实为 return 原始类型 undefined)。new运算符详细介绍

2、function和Function

ECMAScript 的Function实际上就是一个功能完整的对象。而function这个关键字是用来创建所有对象的构造函数或者普通函数要用的关键字ECMAScript如何定义类和对象,提问者var a=new function(){}实际上是用构造函数的方法创建了一个匿名对象的实例,而并不是系统内置对象Function的实例,所以a instanceof Function返回false,typeof返回"object"。

那么什么时候typeof返回"function"呢?当它真的是一个函数名的时候。

 

`function a (){}
//undefined
typeof a
//"function"`

 typeof 和 instanceof 这两个功能就是完全不一样的运算符。typeof 是为了检查数据类型,instanceof是为了看一个变量是否是某个对象的实例。

typeof 的目的,是检查数据类型,而它的输出,非常确定的只有如下几个:

•undefined

•object

•boolean

•number

•string

•function

•symbol(新)

typeof 返回的结果,是一个字符串。只要检查的变量是一个对象,或者是 Null,那它就会返回 object,这当然不够精确,所以有了 instanceof。

因为不存在 object 这个对象,所以会提示你 object is not defined 。而 Object 是 JavaScript 中一个重要的对象,其它对象都是基于它的,包括你创建的函数。你创建 a 的时候,使用的是 new 关键字,这相当于是一个 Function 引用类型的实例。所以 a instanceof Object 就会是 true。

区别是Object 是一种对象类型, "object"是一个字符串, 你不定义的话没有意义。

以上这篇JavaScript中object和Object的区别(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Javascript isArray 数组类型检测函数

    Javascript isArray 数组类型检测函数

    在日常开发中,我们经常需要判断某个对象是否是数组类型的,在js中检测对象类型的常见的方法有几种.
    2009-10-10
  • 非常酷炫的Bootstrap图片轮播动画

    非常酷炫的Bootstrap图片轮播动画

    这篇文章主要为大家分享了非常酷炫的Bootstrap图片轮播动画,几行jQuery和animate.css库用在基本的Bootstrap轮播组件中,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • JS实现提示框跟随鼠标移动

    JS实现提示框跟随鼠标移动

    在本篇内容里小编给各位整理了一篇关于JS实现提示框跟随鼠标移动的相关实例代码,需要的朋友们学习下。
    2019-08-08
  • js、jquery实现列表模糊搜索功能过程解析

    js、jquery实现列表模糊搜索功能过程解析

    这篇文章主要介绍了js、jquery实现列表模糊搜索功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Javascript自定义事件详解

    Javascript自定义事件详解

    这篇文章主要介绍了Javascript自定义事件,本质就是观察者模式,好处就是将绑定事件和触发事件相互隔离开等等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 微信小程序实现元素渐入渐出动画效果封装方法

    微信小程序实现元素渐入渐出动画效果封装方法

    这篇文章主要介绍了微信小程序实现元素渐入渐出动画效果封装方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 前端程序员必须知道的高性能Javascript知识

    前端程序员必须知道的高性能Javascript知识

    这篇文章主要为大家详细介绍了前端程序员必须知道的高性能Javascript知识,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • uniapp实现app自动更新详细步骤

    uniapp实现app自动更新详细步骤

    这篇文章主要给大家介绍了关于uniapp实现app自动更新的详细步骤,文中给出了详细的代码示例以及图文教程,对大家学习或者使用uniapp具有一定的参考学习价值,需要的朋友可以参考下
    2023-08-08
  • 微信公众平台开发教程(五)详解自定义菜单

    微信公众平台开发教程(五)详解自定义菜单

    这篇文章主要介绍了微信公众平台开发教程(五)详解自定义菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • js实现交通灯效果

    js实现交通灯效果

    本文主要介绍了js实现交通灯效果的示例代码。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01

最新评论