美文网首页
对象的概念

对象的概念

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-08-18 09:41 被阅读0次

几点需要注意的的:

  • null本身是一个值类型,但是typeof null 得到的却是一个 object 这是js的一个bug

  • 对象属性访问的方式有两种 .属性名 [属性名],区别在于 []中可以当作计算属性,或者写一些不合规范的变量。

  • 对象的key 只能是字符串,如果传入的不是字符串会自动转成字符串。对象类型的字符串类型是[object object]

  • Ojbect.assign(目标对象,源对象1,源对象2.。。。。。) 会实现浅拷贝。 他会遍历一个或多个源对象的所有可枚举属性并把它们复制到目标对象并返回目标对象

  • Object.freeze(obj) 会冻结一个对象。 被冻结的对象。直接属性不能被修改,删除
  • 当你 访问一个对象的属性时, 比如obj.a 实际上是执行了 obj默认的[[GET]]操作。[[GET]] 操作默认会在对象本身查找有无同名属性,找到就返回。没有就继续去他的原型链上找。

  • 当设置一个对象的属性时。 会触发这个对象默认内置的[[put]]操作。 如果在本身找到了 会执行以下操作
    1.是否有setter 有就执行。
    2.属性描述符中 writeable是否为false 如果为false 严格模式报错。非严格模式忽略操作
    2.如果都不是。对值进行设置

  • 因为 当访问对象某个属性时。如果这个对象在它本身和原型链都没找到。又或者这个属性的值本来就是undefined 返回值都是一样
    因此无法通过返回值来判断对象上有没有某个属性。

    1. 可以通过hasOwnproperty 来判断对象本身是否有某个属性。
    2. 可以通过 运算符 in 来判断对象本身及原型链上有这个属性(无论这个属性是否枚举)
  • definedProperty 主要作用是修改属性修饰符

  • 当对象属性的configurable为false时。不能使用defineProperty重新设置属性修饰符。会报错。 这是个单向操作。无法撤销。于此同时还会禁止删除这个属性。

  • 可以通过writable 和 configurable 创建一个真正的常量属性(常量的三个特点:不可修改,不可重新定义。不可删除)

  • Object.keys() 会 以数组的形式返回这个对象本身的所有可枚举类型属性

  • 当你 使用 for of 语法遍历一个数据结构。。实际上是默认寻找它内置的的[symbol.iterator]属性 并使用next方法来遍历数据值
    var name = 'global'
    let obj = {
        name:'obj',
        say:function(){
            console.log(this.name)
        }
    }
    obj.say() //obj
    let fn = obj.say
    fn()//global

分析
函数并不会属于对象。即使key的值是对象 obj.key,也仅仅是对属性的访问。都是对这个函数的引用。(还是那句老话。真正决定函数中this指向的是调用位置。obj.key返回值是一个函数的话。仅仅代表在这个对象里调用了函数。而不是调用了对象中的这个函数。)

相关文章

  • 对象的概念

    几点需要注意的的: null本身是一个值类型,但是typeof null 得到的却是一个 object 这是js的...

  • VBA-JC第5节|面向对象基本原理与Excel对象结构

    最近更新:'2019-05-14' 类与对象概念Excel对象结构 1. 类与对象概念 1.1面向对象的基本概念 ...

  • 对象

    对象的世俗定义 我对对象的定义 对象概念的存在 空和无也是对象 对象包涵什么 对象的分类 对象概念的延伸 声明:全...

  • 如何在线学习PHP开发(五)面向对象

    面向对象编程的基本概念 类和对象的关系 类的概念image.png 对象的概念image.png 类和对象的关系i...

  • js 对象的概念

    一、对象的定义: 对象是JavaScript的一个基本数据类型,是一种复合值,它将很多值(原始值或者其他对象)聚合...

  • iOS—对象的概念

    很多语言,如C,Pascal,Basic等,都是面向过程的。面向过程的程序设计语言主要使用顺序,选择和循环三种基本...

  • 面向对象的概念

    面向对象(Object Oriented,OO): 面向对象乃是Java语言的核心,是程序设计的思想。Java语言...

  • python 类和对象

    类和对象 目标 类和对象的概念 类和对象的关系 类的设计 01. 类和对象的概念 类 和 对象 是 面向对象编程的...

  • JavaScript高级

    1 面向对象操作 - 回顾对象的基本概念 - 面向对象的相关概念 - 面向对象的特征和操作的实现方式 - 小练习 ...

  • 【10Day】Joshua—《超越人机交互》读书笔记(8)

    基于对象的概念模型--概念模型的混合搭配 2.3.2 基于对象的概念模型 第二大类的概念模型是基于对象或人造物(...

网友评论

      本文标题:对象的概念

      本文链接:https://www.haomeiwen.com/subject/pudhjktx.html