hsaOwnPropretype

    1. function Car (){
    2. name:'car'
    3. }
    4. Car.protype.test = 'test'
    5. let car = new Car()
    6. console.log(var.hsaOwnPropretype('test')) // false

    instanceof
    A 对象得原型链上有B 就会返回true ,相反是没有的

    1. function Car (){
    2. name:'car'
    3. }
    4. Car.protype.test = 'test'
    5. let car = new Car()
    6. console.log(car instanceof Car) // true
    7. console.log([] instanceof Array) // true
    8. console.log([] instanceof Object) // true
    9. console.log({} instanceof Object) // true
    10. console.log(car instanceof Object) // true

    一般判断是一个东西是不是数组

    1. let arr = new Array(1,2,3)
    2. let res = Object.prototype.toString.call(arr)
    3. if(res === '[Object Array]' ){
    4. return 'isArray'
    5. }else{
    6. return '不是数组'
    7. }
    8. //也可以用
    9. if(arr instanceof Array ){
    10. return 'isArray'
    11. }else{
    12. return '不是数组'
    13. }

    image.png

    callee指向当前的函数,给自执行函数递归

    1. function test(a,b,c){
    2. console.log(arguments.callee.length)
    3. }

    caller,返回一个调用这个函数的函数(返回当前函数被调用的函数,必须是执行了的才会有)

    1. function test1(){
    2. test2()
    3. }
    4. function test2(){
    5. console.logtest2.caller
    6. }
    7. test1()