1. 程式人生 > >js--Object.prototype下的方法介紹和使用

js--Object.prototype下的方法介紹和使用

hasOwnProperty

  hasOwnProperty() 方法會返回一個布林值,指示物件自身屬性中是否具有指定的屬性

     不考慮繼承裡的屬性。

o = new Object();
o.prop = 'exists';
o.hasOwnProperty('prop');             // 返回 true
o.hasOwnProperty('toString');         // 返回 false
o.hasOwnProperty('hasOwnProperty');   // 返回 false

isPrototypeOf

方法允許你檢查一個物件是否存在於另一個物件的原型鏈上。

傳入baz物件 檢查是否有Baz.prototype 存在  就返回 true.

function Foo() {}
function Bar() {}
function Baz() {}

Bar.prototype = Object.create(Foo.prototype);
Baz.prototype = Object.create(Bar.prototype);

var baz = new Baz();

console.log(Baz.prototype.isPrototypeOf(baz)); // true
console.log(Bar.prototype.isPrototypeOf(baz)); // true
console.log(Foo.prototype.isPrototypeOf(baz)); // true
console.log(Object.prototype.isPrototypeOf(baz)); // true

propertyIsEnumerable

propertyIsEnumerable()是用來檢測屬性是否屬於某個物件的,如果檢測到了,返回true,否則返回false.  1.這個屬性必須屬於例項的,並且不屬於原型.  2.這個屬性必須是可列舉的,也就是自定義的屬性,可以通過for..in迴圈出來的.  只要符合上面兩個要求,就會返回true;  function MyObject() {  this.name = "我是例項的屬性";  }  var obj = new MyObject();  alert(obj.propertyIsEnumerable("name"));//true  MyObject.prototype.say = "我是原型的屬性";  alert(obj.propertyIsEnumerable("say")); //false  for (var i in obj) {  alert(i);//name,age  } 

toLocaleString

轉換成字串

toString

轉換成字串  兩者在時間的轉換上有區別

valueOf

不用管 其他的內建物件重新覆蓋了這個方法。

Array 返回陣列物件本身。
Boolean 布林值。
Date 儲存的時間是從 1970 年 1 月 1 日午夜開始計的毫秒數 UTC。
Function 函式本身。
Number 數字值。
Object 物件本身。這是預設情況。
String 字串值。
Math 和 Error 物件沒有 valueOf 方法。