zoukankan      html  css  js  c++  java
  • [js]Object.defineProperty等几个js特殊方法

    Object.defineProperty

    var obj = {
        test: "hello"
    };
    
    obj['favor'] = 'orange';
    //对象已有的属性添加特性描述
    // Object.defineProperty(obj, "test", {
    //     configurable: true,
    //     enumerable: true,
    //     writable: true
    // });
    //对象新添加的属性的特性描述
    Object.defineProperty(obj, "age", {
        configurable: true,
        value: 22,
        enumerable: true,
        writable: false
    });
    
    obj['age'] = 10;
    console.log(obj);
    

    检测类型Object.prototype.toString.call

    Object.prototype.toString.call();
    
    Object.prototype.toString.call([]); //"[object Array]"
    Object.prototype.toString.call({}); //"[object Object]"
    Object.prototype.toString.call(null); //"[object Null]"
    Object.prototype.toString.call(undefined); //"[object Undefined]"
    

    转数组

    Array.prototype.slice().call(likeArr);
    
    let likeArrToArr = function (likeArr) {
        var arr = [];
        try {
            arr = Array.prototype.slice.call(likeArr);
        } catch (e) {
            for (var i = 0; i < likeArr.length; i++) {
                arr[arr.length] = likeArr[i];
            }
        }
    
        return arr;
    };
    
    
    var arr = {length: 2, 0: 'first', 1: 'second'};
    console.log(likeArrToArr(arr));
    
    var arr2 = [0,11,22,33];
    console.log(likeArrToArr(arr2));
    
  • 相关阅读:
    本地启动项目后cookie跨域获取不到的处理方式
    相对URL:协议名跨域的一种处理方式
    window.open方法被浏览器拦截的处理方式
    高维前缀和
    比较函数大小
    链式前向星
    并查集
    Kruskal算法
    读书笔记 UltraGrid(4)
    读书笔记 UltraGrid(12)
  • 原文地址:https://www.cnblogs.com/iiiiiher/p/9999642.html
Copyright © 2011-2022 走看看