Javascript Object对象方法详解

一、Object类介绍
Object类是所有JavaScript类的基类(父类),提供了一种创建自定义对象的简单方式,不再需要程序员定义构造函数。可以在程序运行时为Javascript对象随意添加属性,因此可以很容易地创建自定义对象。

二、Object类主要属性
1.constructor:对象的构造函数。
2.prototype:获得类的prototype对象,static性质, 对象的引用。

三、Object类主要方法
1.hasOwnProperty(propertyName)
判断对象是否有某个特定的属性。必须用字符串指定该属性,例如,obj.hasOwnProperty("name"),返回布尔值。此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。

2.isPrototypeOf(object)
判断该对象是否为另一个对象的原型。
obj1.isPrototypeOf(obj2);
obj1是一个对象的实例;obj2是另一个将要检查其原型链的对象。原型链可以用来在同一个对象类型的不同实例之间共享功能。如果obj2的原型链中包含 obj1,那么isPrototypeOf 方法返回true。如果obj2不是一个对象或者obj1没有出现在obj2中的原型链中,isPrototypeOf 方法将返回 false。

3.propertyIsEnumerable(propertyName)
通过这个方法我们可以检测出这个对象成员是否是可遍历的,如果是可遍历出来的,证明这个对象就是可以利用for in 循环进行遍历的,格式如下:obj.propertyIsEnumerable(propertyName)
如果 propertyName存在于 obj中且可以使用一个 For…In 循环穷举出来,那么 propertyIsEnumerable 属性返回 true。如果 object 不具有所指定的属性或者所指定的属性不是可列举的,那么 propertyIsEnumerable 属性返回 false。
典型地,预定义的属性不是可列举的,而用户定义的属性总是可列举的。

4.toString()

返回对象对应的字符串


5.valueOf()

返回对象对应的原始值


以上5个方法都是Object.prototype上定义的,ECMAScript中的所有对象都由Object继承而来,所以在ECMAScript上的所有对象都具有以几个方法

<script type="text/javascript">
  document.write("<pre>");
  //hasOwnProperty
  //此方法无法检查该对象的原型链中是否具有该属性;该属性必须是对象本身的一个成员。
  var str ="";
  document.writeln("str.hasOwnProperty(\"split\")的结果是:" + str.hasOwnProperty("split")); //return false
  document.writeln("String.prototype.hasOwnProperty(\"split\")的结果是:" + String.prototype.hasOwnProperty("split")); //return true
  //定义对象
  function Person(first, lastName, age){
    this.FirstName = first;
    this.LastName  = lastName;
    this.Age       = age;
  }
  //把方法动态添加到 JavaScript 对象
  Person.prototype.Show = function() {
    document.writeln (this.FirstName +  ' ' + this.LastName);
  };
  var personObj = new Person("John", "Toms", 29);
  personObj.Show();
  document.writeln("person.hasOwnProperty(\"FirstName\")的结果是"  + personObj.hasOwnProperty("FirstName")); //return true
  document.writeln("constructor: " + personObj.constructor);
  document.writeln("toString(): " + personObj.toString());
  document.writeln("valueof(): " + personObj.valueOf());
  document.write("</pre>");
</script>



郎涯工作室 CSDN认证博客专家 Java C++ 视音频
微信搜索:【郎涯工作室】关注我。
卖码为生,有代码洁癖。不爱广度,爱深度 — 擅长Java、PHP、C++、音视频开发。
想和你一起,每天进步一点点,做一个不凡的人!
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:上身试试 返回首页