构造函数

new Object() 

new Object(value)

参数

value
    可选的参数,声明了要转换成Number对象、Boolean对象或String对象的原始值(即数字、布尔值或字符串)。JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象。

返回值

  如果没有给构造函数传递value参数,那么它将返回一个 新创建的Object实例。如果指定了原始的value参数,构造函数将创建并返回原始值的包装对象,即Number对象、Boolean对象或 String对象。当不使用new运算符,将Object()构造函数作为函数调用时,它的行为与使用new运算符时一样。

属性

constructor

对一个JavaScript函数的引用,该函数是对象的构造函数

方法

  1.hasOwnProperty( )

检查对象是否有局部定义的(非继承的)、具有特定名字的属性。

   <script type="text/javascript">
            var o = new Object();
            o.name="Tom";
            alert(o.hasOwnProperty("name"));    //true
            alert(o.hasOwnProperty("age"));    //false
        </script>

2.isPrototypeOf()

语法

object.isPrototypeOf(o)

参数

o

任意对象。

返回值

如果object是O的原型,则返回true。如果o不是对象,或者object不是o的原 型,则返回false。

描述

JavaScript对象继承了原型对象的属性。一个对象的原型是通过用于创建并初始化该对象的构造函数的prototype属性引用的。isPrototypeOf()方法提供了判断一个对象是否是另一个对象原型的方法。该方法可以用于确定对象的 类。

示例

var o = new Object(  );                          // 创建一个对象

Object.prototype.isPrototypeOf(o)                // true: o 是一个对象

Function.prototype.isPrototypeOf(o.toString);    // true: toString 是一个函数

Array.prototype.isPrototypeOf([1,2,3]);          // true: [1,2,3] 是一个数组

//下面是执行同样测试的另一种方法

(o.constructor == Object);  // true: o was created with Object(  ) constructor

(o.toString.constructor == Function);  // true: o.toString is a function

/原型则对象本身于原型对象。下面的调用返回true

//说明函数继 Function.prototype和Object.prototyp属性.

Object.prototype.isPrototypeOf(Function.prototype);

3.ProertyIsEnumerable()

语法

object.propertyIsEnumerable(propname)

参数

propname

一个字符串,包含object原型的名字。


返回值

如果object具有名为propname的非继承属性,而且该属性是可枚举的(即用for/in循环可以枚举出它),则返回true。


描述

用for/in语句可以遍历一个对象“可枚举”的属性。但并非—个对象的所有属性都是可枚举的,通过JavaScript代码添加到对象的属性是可枚举的,而内部对象的预定义属性(如方法)通常是不可枚举的。propertylsEnumerable()方法提供了区分可枚举属性和不可枚举属性的方法。但要注意,ECMAScript标准规定,propertyIsEnumerable()方法不检测原型链,这意味着它只适用于对象的局部属性,不能检测继承属性的可枚举性。


示例

var o = new Object(  );                // 创建一个对象

o.x = 3.14;                            // 定义—个属性

o.propertyIsEnumerable("x");           // true属性x是局部的、可枚举的

o.propertyIsEnumerable("y");           //false:o没有属性y

o.propertyIsEnumerable("toString");    //false:toStrlng属性是继承的

Object.prototype.propertyIsEnumerable("toString");  // false: 枚举的

Bug

当标准限制propertylsEnumerable()方法只能检测非继承属性时,明显是错的。 Internet Explorer 5.5按标准实现了该方法。Nestacpe 6.0实现的propertyIsEnumerable()方法考虑了原型链。虽然这种方法可取,但它与标准冲突,所以Netscape 6.1修改了它,以便与IE 5.5匹配。由于标准中有这个错误,因此该方法不是那么有用。

最新文章

  1. FactoryMethodPattern(工厂方法)
  2. php导出EXCEL方法
  3. PHPCMS系统常量
  4. Security &#187; Authorization &#187; 基于自定义策略的授权
  5. eclipse中运行项目时报Class not found的错误
  6. WinForm 批量设置指定控件中的控件状态
  7. nodepad + 插件
  8. Python学习教程(learning Python)--2.3.5 Python返回多个值问题
  9. 中国大概能用的NTPserver地址
  10. 一篇文章讲清楚android ImageView.ScaleType
  11. 大数据学习系列之一 ----- Hadoop环境搭建(单机)
  12. Jmeter接口测试操作
  13. Google代码规范
  14. Navicat Premium 12激活教程
  15. MySQL并行复制的一个坑
  16. Ionic 3 延迟加载(Lazy Load)实战(一)
  17. 6-14 Abbott的复仇 uva816
  18. (4.21)sql server中复制查询结果集
  19. 解决MySQL不允许远程连接的问题
  20. LoadRunner手写脚本、检查点、集合点、事务、思考时间

热门文章

  1. iOS开发之蓝牙使用-建立连接的
  2. 如何打开Assets.car文件
  3. AI-Info-Micron-Insight:工业 5.0,伟大的思想将殊途同归
  4. Git master branch has no upstream branch的解决
  5. VisualStudio.Net应用程序制作图标
  6. 【bzoj2242】: [SDOI2011]计算器 数论-快速幂-扩展欧几里得-BSGS
  7. GIS有关GP服务的发布和调用
  8. spring boot app
  9. D - Frogger
  10. Go语言基础之21--反射