最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript中instanceof運算符的用法詳解

 更新時間:2022年06月21日 10:08:44   作者:小旭2021  
本文詳細講解了javascript中instanceof運算符的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

概述

instanceof運算符用來判斷一個構(gòu)造函數(shù)的prototype屬性所指向的對象是否存在另外一個要檢測對象的原型鏈上

語法

obj instanceof Object;//true 實例obj在不在Object構(gòu)造函數(shù)中

描述

instanceof 運算符用來檢測 constructor.prototype 是否存在于參數(shù) object 的原型鏈上。

實例

1.instanceof的普通的用法,obj instanceof Object 檢測Object.prototype是否存在于參數(shù)obj的原型鏈上。

Person的原型在p的原型鏈中

function Person(){};
var p =new Person();
console.log(p instanceof Person);//true

2.繼承中判斷實例是否屬于它的父類

Student和Person都在s的原型鏈中

function Person(){};
function Student(){};
var p =new Person();
Student.prototype=p;//繼承原型
var s=new Student();
console.log(s instanceof Student);//true
console.log(s instanceof Person);//true

3.復(fù)雜用法

這里的案例要有熟練的原型鏈的認識才能理解

function Person() {}
console.log(Object instanceof Object);     //true
//第一個Object的原型鏈:Object=>
//Object.__proto__ => Function.prototype=>Function.prototype.__proto__=>Object.prototype
//第二個Object的原型:Object=> Object.prototype

console.log(Function instanceof Function); //true
//第一個Function的原型鏈:Function=>Function.__proto__ => Function.prototype
//第二個Function的原型:Function=>Function.prototype

console.log(Function instanceof Object);   //true
//Function=>
//Function.__proto__=>Function.prototype=>Function.prototype.__proto__=>Object.prototype
//Object => Object.prototype

console.log(Person instanceof Function);      //true
//Person=>Person.__proto__=>Function.prototype
//Function=>Function.prototype

console.log(String instanceof String);   //false
//第一個String的原型鏈:String=>
//String.__proto__=>Function.prototype=>Function.prototype.__proto__=>Object.prototype
//第二個String的原型鏈:String=>String.prototype

console.log(Boolean instanceof Boolean); //false
//第一個Boolean的原型鏈:Boolean=>
//Boolean.__proto__=>Function.prototype=>Function.prototype.__proto__=>Object.prototype
//第二個Boolean的原型鏈:Boolean=>Boolean.prototype

console.log(Person instanceof Person); //false
//第一個Person的原型鏈:Person=>
//Person.__proto__=>Function.prototype=>Function.prototype.__proto__=>Object.prototype
//第二個Person的原型鏈:Person=>Person.prototype

總結(jié)

對應(yīng)上述規(guī)范做個函數(shù)模擬A instanceof B:

function _instanceof(A, B) {
    var O = B.prototype;// 取B的顯示原型
    A = A.__proto__;// 取A的隱式原型
    while (true) {
        //Object.prototype.__proto__ === null
        if (A === null)
            return false;
        if (O === A)// 這里重點:當 O 嚴格等于 A 時,返回 true
            return true;
        A = A.__proto__;
    }
}

到此這篇關(guān)于javascript中instanceof運算符的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 常用一些Javascript判斷函數(shù)

    常用一些Javascript判斷函數(shù)

    常用一些Javascript判斷函數(shù),都是一些js基礎(chǔ)知識,學習js的朋友可以看下
    2012-08-08
  • JavaScript DOM元素尺寸和位置

    JavaScript DOM元素尺寸和位置

    這篇文章主要介紹了JavaScript DOM元素尺寸和位置,需要的朋友可以參考下
    2015-04-04
  • JavaScript高級程序設(shè)計(第3版)學習筆記9 js函數(shù)(下)

    JavaScript高級程序設(shè)計(第3版)學習筆記9 js函數(shù)(下)

    函數(shù)是一種對象,擁有一般對象具有的所有特征,除了函數(shù)可以有自己的屬性和方法外,還可以做為一個引用類型的值去使用,實際上我們前面的例子中已經(jīng)有過將函數(shù)作為一個對象屬性的值,又比如函數(shù)也可以作為另一個函數(shù)的參數(shù)或者返回值,異步處理中的回調(diào)函數(shù)就是一個典型的用法
    2012-10-10
  • JavaScript數(shù)據(jù)類型詳解

    JavaScript數(shù)據(jù)類型詳解

    這篇文章主要介紹了JavaScript數(shù)據(jù)類型詳解,本文詳細講解了JavaScript中有5種基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number和String,需要的朋友可以參考下
    2015-04-04
  • Javascript String.replace的妙用

    Javascript String.replace的妙用

    字符替換是一個非常重要的功能,javascript 中有一個 String.replace( ),但是此方法有很多不為新手所知的妙用,如果用的好了,可以為您節(jié)省很多寶貴時間,還等什么?馬上進來看看吧!
    2009-09-09
  • 實現(xiàn)高性能JavaScript之執(zhí)行與加載

    實現(xiàn)高性能JavaScript之執(zhí)行與加載

    avaScript在瀏覽器中的性能,此問題因JavaScript的阻塞特征而復(fù)雜,也就是說JavaScript運行時其他的事情不能被瀏覽器處理,事實上,大多數(shù)瀏覽器使用單進程處理JavaScript運行等多個任務(wù),而同一時間只能有一個任務(wù)被執(zhí)行。
    2016-01-01
  • 舉例講解JavaScript中將數(shù)組元素轉(zhuǎn)換為字符串的方法

    舉例講解JavaScript中將數(shù)組元素轉(zhuǎn)換為字符串的方法

    這篇文章主要介紹了JavaScript中將數(shù)組元素轉(zhuǎn)換為字符串的方法,是JS入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • js創(chuàng)建jsonArray傳輸至后臺及后臺全面解析

    js創(chuàng)建jsonArray傳輸至后臺及后臺全面解析

    下面小編就為大家?guī)硪黄猨s創(chuàng)建jsonArray傳輸至后臺及后臺全面解析。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。
    2016-04-04
  • JavaScript 學習筆記之操作符

    JavaScript 學習筆記之操作符

    本文著重給大家介紹了javascript的操作符,包含一元操作符、位操作符、布爾操作符這3種類型,講解的十分全面,小伙伴們參考下
    2015-01-01
  • Javascript學習筆記之 對象篇(一) : 對象的使用和屬性

    Javascript學習筆記之 對象篇(一) : 對象的使用和屬性

    Javascript 中的一切都可以視為對象,除了兩個特例:null 和 undefined。
    2014-06-06

最新評論

陈巴尔虎旗| 昆山市| 惠东县| 凤山县| 威信县| 寿光市| 广河县| 浦城县| 大邑县| 千阳县| 深水埗区| 济源市| 宁强县| 开鲁县| 大安市| 汤阴县| 桃园县| 八宿县| 垦利县| 沈丘县| 奎屯市| 蓬安县| 洪湖市| 富顺县| 南城县| 容城县| 静乐县| 金沙县| 云阳县| 八宿县| 永泰县| 金湖县| 临湘市| 新竹县| 遂昌县| 开封市| 和林格尔县| 南涧| 宁乡县| 安岳县| 侯马市|