方法1


<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><script>// 通过立即执行的函数表达式创建一个私有的空间(函数作用域),在此空间的中创建的所有内容都是私有的(函数外部访问不到)// 除非我们手动地向函数外部返回(暴露)一些内容(公共的)// 没有返回到外部内容就是私有的var obj1 = (function () {// 私有内容var age = 19;// 公共内容return {name: '张尊娟',getAge: function () {return age;},growOlder: function () {age++;},greeting: function() {return '你好,我叫' + this.name + ',今年' + age + '岁了。'}}}());console.log(obj1.name)console.log(obj1.greeting())console.log(obj1.growOlder())console.log(obj1.getAge())</script>
</body>
</html>

方法2


<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body><script>// 通过立即执行的函数表达式创建一个私有的空间(函数作用域),在此空间的中创建的所有内容都是私有的(函数外部访问不到)// 如果你想将一些内容变成公共,你需要把他们手动地返回(暴露)到函数外部// 没有返回到外部的内容都是私有的var obj1 = (function () {// 私有内容var age = 19;var name = '张尊娟';function getAge() {return age;}function growOlder() {age++;}function greeting() {return '你好,我叫' + this.name + ',今年' + age + '岁了。'}// 公共内容// return {//     name: name,//     getAge: getAge,//     growOlder: growOlder,//     greeting: greeting// };// 当属性名与属性值的名字相同时,可以简写成如下形式,这是 ES6 规范中提供的新语法。return {name,getAge,growOlder,greeting};}());console.log(obj1.name)console.log(obj1.greeting())console.log(obj1.growOlder())console.log(obj1.getAge())</script>
</body></html>

JS-面向对象--创建具有私有属性的对象(2个方法)相关推荐

  1. JS-面向对象-创建具有私有属性的构造函数(2种方法)

    方式1 <!DOCTYPE html> <html lang="zh"><head><meta charset="UTF-8&q ...

  2. js进阶课程 12-9 jquery的事件对象event的方法有哪些?

    js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...

  3. Spring框架中集合属性为对象的注入方法

    Spring框架中集合属性为对象的注入方法 前言 创建基础类 创建`Course`类 编写XML配置文件 创建测试类 执行结果 前言 在集合的属性注入中,如果注入属性为普通类型(String.int) ...

  4. Java (1)写一个类,名为Animal, 该类有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public的访问方法。并提供两个重载的构造方法,

    Java (1)写一个类,名为Animal, 该类有两个私有属性,name(代表动物的名字),和legs(代表动物的腿的条数);要求为两个私有属性提供public的访问方法.并提供两个重载的构造方法, ...

  5. JS面向对象定义多个属性--object.defineProperties()方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. python面向对象中的私有属性和私有化方法

    xx: 公有变量 (公有) _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突, ...

  7. JS中函数的prototype属性和对象的__proto__属性

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  8. js面向对象小结(工厂模式,构造函数,原型方法,继承)

    本文转至:TJYoung 最近过了一遍尼古拉斯泽卡斯的高级程序设计第三版(红皮书)第六章:面向对象程序设计,现在把总结出来的东西和大家分享一下. 主要内容如下: 1.工厂模式 2.构造函数模式 3.原 ...

  9. JavaScript中闭包实现的私有属性的getter()和setter()方法

    注意: 以下的输出都在浏览器的控制台中 <!DOCTYPE html> <html> <head><meta charset="utf-8" ...

最新文章

  1. 是什么阻止了自动驾驶汽车上路?
  2. 架构设计器_MySQL:数据库结构优化、高可用架构设计、数据库索引优化
  3. 专为设计师而写的GitHub快速入门教程
  4. C/C++求职宝典21个重点笔记(常考笔试面试点)
  5. [问答]-ARM文档中的†和‡的含义
  6. AV1:为互联网提供开放、免费的视频编解码工具
  7. Oracle中的两种验证方式:操作系统验证和密码文件验证,通过操作系统验证的方式解决客户端登录不了数据的问题
  8. Mybatis源码分析之(一)搭建一个mybatis框架(写一个mybatis的Demo)
  9. 使用Visual Studio开发游戏——微软宣布与Unity、Unreal Engine和Cocos展开全新合作
  10. python错误提示库没有注册_SpringBoot实现登录注册常见问题解决方案
  11. GitHub 断供危机来了!权威解读程序员应对指南 | CSDN 独家
  12. 专访尤雨溪:先别管4.0了,Vue CLI重构了解一下
  13. NOI训练行动路线图
  14. 6.1离散时间马尔科夫链
  15. OpenHarmony AI图像识别开发—基于润和Hi3516开发套件
  16. 数据库实验报告-实验一:SQL语言
  17. Denoise: from image to point cloud
  18. 箱形图、盒须图、盒式图、箱线图
  19. 如何批量将图片转换为 Excel 文档
  20. Linux下线程池概念详解以及代码演示

热门文章

  1. memcached内存管理及key value长度限制
  2. Unit Test单元测试时如何模拟HttpContext
  3. Highcharts使用指南
  4. Javascript版的Repeater控件实现
  5. 除了 Tensorflow、PyTorch ,还有哪些深度学习框架值得期待?
  6. 百度EasyDL深度学习实战营,免费教你转型AI工程师!
  7. OpenMMLab的新篇章
  8. CV Code | 本周新出计算机视觉开源代码汇总(含实例分割、行人检测、姿态估计、神经架构搜索、超分辨率等)...
  9. OpenCV开发团队开源计算机视觉标注工具CVAT
  10. 一文带你读懂单目视觉SLAM数据关联优化