zoukankan      html  css  js  c++  java
  • 你不知道的Javascript之对象

    对象有二种形式:声明文字 与构造形式;

    文字:
    var myobj = {
    key:value,
    //........ 可以多添加内容
    }
    构造:
    var myobj = new Object();
    myobj.key = value; //内容必须逐个添加;

    内置对象
    String Number Boolean Object Function Array Date RegExp Error
    对象的访问
    var myobj = {
    a:2,
    b:3
    }
    myobj.a//2 点语法通常为 属性访问
    myobj["a"]//2 中括号通常称为 键访问
    还有例如:在对象中 属性名永远是字符串
    如果中括号中
    var myobj = {};
    myobj[true] = "foo";
    myobj[3] = "bar";
    myobj[myobject]="baz";
    自动转化
    myobj["true"]= "foo";
    myobj["3"] = "bar"; //与数组是有区别的 注意!!!!!

    属性与方法:

    无论对象返回声明类型,每次访问对象的属性就是属性访问,如果属性访问返回的是一个函数,那它并不是一个"方法",属性访问返回
    的函数和其他函数没有任何区别(除了this的隐式绑定);
    function foo()
    {
    console.log("foo");
    }
    var somefoo = foo;
    var myobj = {
    somefoo:foo;
    }
    那么: myobj.somefoo 与 somefoo 没有区别 知识对与同一个函数的不同引用;
    即使你在对象的文字形式中声明一个函数表达式,这个函数也不会属性这个对象;
    他们只是对应相同函数的不同引用;
    var myobj = {
    foo:function()
    {
    console.log("foo");
    }
    }
    var somefoo = myobj;
    somefoo;
    myobj.foo;

    数组

    深复制
    var newobj = JSON.parse(JSON.stringify(someobj));
    浅复制
    ES6中出现的新方法 Object.assign(第一个参数是目标对象,之后跟一个或多个源对象)
    遍历所有可以枚举的对象

    属性描述
    判断属性是否只读
    var myobj = {a:2};
    Object.getOwnPropertyDescriptor(myobj,"a"){
    value:2,
    writable:true, //是否修改属性的值
    enumerable:true, //可配置的
    configurable:true //属性描述符 是否属性出现在对象的属性枚举中
    }

  • 相关阅读:
    WebApi Ajax 跨域请求解决方法(CORS实现)
    JQuery Ajax POST/GET 请求至 ASP.NET WebAPI
    Hybird APP对接后台:Net WebApi
    Chrome
    centos8平台:用fontconfig安装及管理字体(fc-list/fc-match/fc-cache)
    centos8平台:redis6配置启用io多线程(redis6.0.1)
    centos8平台安装redis6.0.1
    centos8平台:举例讲解redis6的ACL功能(redis6.0.1)
    ImageMagick实现图片加水印(ImageMagick6.9.10)
    centos8上安装ImageMagick6.9.10并压缩图片生成webp缩略图
  • 原文地址:https://www.cnblogs.com/h5monkey/p/6478645.html
Copyright © 2011-2022 走看看