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 //属性描述符 是否属性出现在对象的属性枚举中
    }

  • 相关阅读:
    for of 与 for in的区别
    Mac Item2 SSH免密登录Linux 服务器的两种方式
    组塞式,非阻塞式,同步异步
    Thrift_简介(基于C#)
    HTTP Error 500.22
    http协议
    IIS_部署出错
    JavaScript如何实现继承
    $(function(){})与 (function(){})() (function($){})() 的区别
    C#_反射机制
  • 原文地址:https://www.cnblogs.com/h5monkey/p/6478645.html
Copyright © 2011-2022 走看看