zoukankan      html  css  js  c++  java
  • 一道面试题的几种解法

    第一种:

    解题思路1:掌握数据类型转换的规则,如果a是一个对象,我们就可以利用“对象->数字”的规则去做一些处理
    var a = {
    i: 0,
    // a[Symbol.toPrimitive] 还可以重写:valueOf/toString
    [Symbol.toPrimitive]() {
    // this->a
    return ++this.i;
    }
    };
    if (a == 1 && a == 2 && a == 3) {
    console.log('OK');
    }
    第二种
     
    var a = [1, 2, 3];
    a.toString = a.shift;
    if (a == 1 && a == 2 && a == 3) {
    console.log('OK');
    }
     
     
    第三种 
    解决思路2:我们可以劫持对象的成员访问全局下声明的变量是window的一个属性 Object.defineProperty数据劫持的办法
     
    let i = 0;
    Object.defineProperty(window, 'a', {
    get() {
    return ++i;
    }
    });
    if (a == 1 && a == 2 && a == 3) {
    console.log('OK');
    }
     
     
  • 相关阅读:
    java反编译工具
    javascript
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
    微信小程序
  • 原文地址:https://www.cnblogs.com/zhx119/p/15359675.html
Copyright © 2011-2022 走看看