1. 程式人生 > >JS高級——Object.prototype成員

JS高級——Object.prototype成員

構造 繼承 truct rabl 其他屬性 rip idt const isp

基本概念

成員描述
Object.prototype.__proto__ 指向當對象被實例化的時候,用作原型的對象。
Object.prototype.hasOwnProperty() 返回一個布爾值 ,表示某個對象是否含有指定的屬性,而且此屬性非原型鏈繼承的。
Object.prototype.isPrototypeOf() 返回一個布爾值,表示指定的對象是否在本對象的原型鏈中。
Object.prototype.toString() 返回對象的字符串表示。
Object.prototype.valueOf() 返回指定對象的原始值。

valueOf

<
script> function Person() { this.valueOf = function () { return 1; } } var p = new Person(); //在對象參與運算的時候 //1.默認的會先去調用對象的valueOf方法, //2.如果valueOf獲取到的值,無法進行運算 ,就去去調用p的toString方法 最終做的就是字符串拼接的工作 console.log(1 + p); </script>

toString、toLocaleString

<script>
    // toString:轉為字符串
    // toLocaleString:轉為字符串,而且將對象轉化成本地格式
    var o = {};
    console.log(o.toString());//[object Object]
    console.log(o.toLocaleString());//[object Object]

    var now = new Date();
    console.log(now.toString());//Mon Jan 22 2018 12:37:32 GMT+0800 (中國標準時間)
    console.log(now.toLocaleString());
//2018/1/22 下午12:37:32 </script>

其他屬性

<script>

    function Person() {
        this.name = qx;
    }
    //
    var p = new Person();
    //constructor:指向該原型對象相關聯的構造函數
    console.log(p.constructor);
    //hasOwnProperty:用來判斷對象本身(不包含原型)是否擁有某個屬性
    console.log(p.hasOwnProperty("__proto__"));//false
    console.log(p.hasOwnProperty(name));//true
    // propertyIsEnumerable:判斷屬性是否屬於對象本身;判斷屬性是否可以被遍歷
    console.log(p.propertyIsEnumerable(name));//true
</script>

JS高級——Object.prototype成員