zoukankan      html  css  js  c++  java
  • ~~~持续更新,面向对象的编程,个人浅见

    看了很多大佬的blogs和文章,越来越觉得js基础的重要性,无论是各类开源框架还是三方的类库,唯有扎实js基本功才能驾驭,对今后造轮子也大有裨益。最近正在晒网期,来慢慢学习一下。本人语言表达能力很差,随便写来自己看看。

    一、对象

       JavaScript中所有的事物都是对象,包括如 String、Date、Array 等等。对象是带有属性和方法的特殊数据类型

        这里就不说创建对象的方式了,一般的对象都可以转换成以下形式:

        var person={

          name:"Lucy",

          age:22,

          Job:"Software Engineer",

          sayName:function(){

            consoe.log("my name is“+this.name)

          }

       }

    二、属性类型

      前面说了,对象是带有属性和方法的特殊数据类型。在ES5中用attribute描述属性的特征,通常用[[]]包含特征值 ,eg:[[Enumerable]]

    ECMAScript中的属性有两种:数据属性和访问器属性

    1.数据属性

      数据属性有4个描述属性的特征

      [[Configurable]]:表示能否通过delete 删除属性而重新定义属性,默认为true

      [[Enumerable]]:表示能否通过for-in循环遍历属性,默认true

      [[Writable]]:能否修改属性的值,默认true

      [[Value]]:属性的值,默认为undefined

     ES5定义了一个Object.defineProperty()方法来修改这些这些默认特征,请记住这个方法

    方法接受三个参数:对象名称,属性名称及描述符,eg:

    var person={}

    Object.defineProperty(person,"name",{

      writable:false,

      value:"Lucy"

    });

    console.log(person,name)//"Lucy"

    person,name="Bob"

    console.log(person,name)//"Lucy"    在严格模式下会报错 

    2.访问器属性

    访问器属性同样包含4个特征

    [[configurable]]:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为false

     [[enumerable]]:表示能否通过for-in循环返回属性,默认为false

     [[Get]]:在读取属性时调用的函数,默认值为undefined

     [[Set]]:在写入属性时调用的函数,默认值为undefined

    访问器属性跟数据属性不同,不能在创建函数的时候直接定义,只能通过Object.definedproperty()来定义,

    这边懒得写了,借用别人的图片展示一下

    打印结果

    特别要注意,数据属性和访问器属性除了定义方式不同,其两个特征的默认值也是不同的。

  • 相关阅读:
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
    第 8 章 容器网络
  • 原文地址:https://www.cnblogs.com/liuxin-673855200/p/9950811.html
Copyright © 2011-2022 走看看