资讯专栏INFORMATION COLUMN

JS中的公有、私有、静态、共享属性和方法

starsfun / 3068人阅读

摘要:在构造函数中用进行声明私有是指,在外部环境中不能直接访问,该属性方法只能在对象的构造函数内访问。声明在构造函数里的变量和方法,没有用到静态是指,属性方法是归属于类的,而非实例对象。

什么是Javascript的公有属性/方法,私有属性/方法,静态属性/方法,共享属性/方法?

公有是指,在外部环境中可以获取的,可以直接通过实例对象用”.”运算符操作获得。(在构造函数中用this进行声明)

私有是指,在外部环境中不能直接访问,该属性/方法只能在对象的构造函数内访问。(声明在构造函数里的变量和方法,没有用到this)

静态是指,属性/方法是归属于类的,而非实例对象。可以直接通过类名来调用得到。

共享是指,实例对象之间,共享属性和方法,借助向原型对象添加属性和方法,可以实现。

(虽然都有“公共”的含义,但是可以看出静态的和共享的之间的区别了吧)

为什么把方法写在prototype中而不写在构造函数中

参考: https://blog.csdn.net/FJ20100...
因为写在构造函数中更消耗内存。写在构造函数中的话,每次用构造函数new一个对象的话,都会创建一份新的属性和方法存到内存中。而写在原型对象中就没有这个问题,对于这个类,只有一个原型对象,因此写在原型对象之下的方法也不会多次复制,永远只有一份。
(如果写在原型对象中,多个实例调用这个方法,会有什么问题吗?比如对同一个对象进行操作?)验证方法 方法用 ==进行比较,即内存地址的比较

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104257.html

相关文章

  • js高级程序设计-函数表达式-阅读笔记

    摘要:关于函数声明他的一个重要特征就是函数声明提升就是在执行代码之前会先读取函数声明这意味着可以把函数声明放到调用他的语句的后面将声明放到了后面关于函数表达式创建一个匿名函数然后赋值给一个变量函数体可以返回一个匿名函数返回的函数可以赋值给一个变量 关于函数声明 他的一个重要特征就是函数声明提升,就是在执行代码之前会先读取函数声明,这意味着可以把函数声明放到调用他的语句的后面 sayHi();...

    hiyang 评论0 收藏0
  • 解释JS中的静态方法公有方法私有方法特权方法

    面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值、对象或者函数。 我们首选要了解封装、继承、多态又有如何特点 封装:顾名思义来封装变量和函数封装->特点:高度复用,降低冗余度,更有利于模块化编程,能够为...

    wizChen 评论0 收藏0
  • js 的原型 原型链 原型链的继承

    摘要:图片描述缺点是无法实现多继承可以在构造函数中,为实例添加实例属性。 对象的方法 Object.assign() 对象可以简写 ,如果 key 和 value 相等则可以简写 let name = xm; let age = 2; let obj = { name, age, fn(){ // 可以省略函数关键字和冒号: console.log(2...

    soasme 评论0 收藏0
  • js对象的封装、继承多态

    摘要:面向对象三大特性就是封装继承和多态,简单理解,对于猫这种动物,它本身就是一个封装好的类,你只需要供它吃喝输入,它就能表现猫的行为输出,同时它继承了动物所具有的习性吃东西等,而不同的猫因为所处环境或者习性的不同,可能会有不同的表现和行为,这就 面向对象三大特性就是封装继承和多态,简单理解,对于猫这种动物,它本身就是一个封装好的类,你只需要供它吃喝(输入),它就能表现猫的行为(输出),同时...

    Stardustsky 评论0 收藏0
  • JavaScript面向对象入门

    摘要:在中是没有这样的关键字的,我们需要这样做定义在方法内也就是内部,也可以看作成构造函数的变量,就是私有变量。移动气球我们需要用到定时器。 什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用【String、Date、Array】等等 javaScript也允许我们自己自定义对象 事件驱动 ...

    or0fun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<