JavaScript 对象成员的可见性说明

yizhihongxing

JavaScript 对象成员的可见性是指对象中的属性和方法在不同情况下是否可以被访问到。在JS中,以下是对象成员的可见性说明:

  1. 公共成员

公共成员是对象中可以被外部访问到的属性和方法。在定义对象时,可以在对象的原型上定义公共成员,例如:

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.greet = function() {
  console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
};

const john = new Person('John', 25);
john.greet(); //输出:Hello, my name is John and I am 25 years old.

在上述代码中,greet() 方法被定义在 Person 函数的原型上,因此可以被 john 对象访问到。这就是公共成员的典型使用方式,它允许在对象之外访问到对象的属性和方法。

  1. 私有成员

私有成员是对象中无法被外部访问到的属性和方法。在JS中,可以使用闭包来实现属性和方法的私有化,例如:

function Person(name, age) {
  let id = Math.floor(Math.random() * 1000); //私有属性
  this.name = name;
  this.age = age;

  function getID() { //私有方法
    return id;
  }

  this.greet = function() { //公共方法
    console.log(`Hello, my name is ${this.name} and I am ${this.age} years old. My ID is ${getID()}.`);
  };
}

const john = new Person('John', 25);
john.greet(); //输出:Hello, my name is John and I am 25 years old. My ID is 415.
console.log(john.id); //输出:undefined
console.log(john.getID(); //输出:Uncaught TypeError: john.getID is not a function

在上述代码中,idgetID() 都被定义在 Person 函数中,但它们只能在 Person 内部被访问,因此它们是私有成员。在 greet() 方法中,我们可以调用 getID() 方法来获取 id 的值,但它不会被外部访问到。

总的来说,公共成员和私有成员都在JS对象的设计中扮演了重要的角色,不同的成员之间的可见性有助于保护对象的信息,同时也能提高代码的可读性和易用性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 对象成员的可见性说明 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS根据json数组多个字段排序及json数组常用操作

    JS根据json数组多个字段排序及json数组常用操作 JSON数组是前端开发中常用的数据类型,掌握对JSON数组的操作是前端开发的必要技能之一。本文将详细讲解如何在JS中根据JSON数组中的多个字段进行排序,并介绍JSON数组常用的操作方法。 一、JSON数组排序 1.1 单字段排序 对于只有一个字段需要排序的JSON数组,可以使用Array.protot…

    JavaScript 2023年5月27日
    00
  • 详解javascript获取url信息的常见方法

    下面我会详细讲解“详解javascript获取url信息的常见方法”的完整攻略。 获取url信息 在javascript中,获取url信息可以通过window.location对象来实现。window.location提供了一系列属性,能够帮助我们轻松获取当前网页的各种信息。 获取url 获取当前页面url的方法是直接访问window.location属性,…

    JavaScript 2023年6月11日
    00
  • JS特殊函数(Function()构造函数、函数直接量)区别介绍

    JS中的函数(Function)是非常重要的概念。在JS中,有三种创建函数的方式:函数直接量、Function()构造函数和箭头函数。其中,函数直接量和Function()构造函数的功能和用法相似,但也有一些区别。 函数直接量 函数直接量是定义函数最简单的方式之一。它就是将一个函数的定义放在一个表达式中,这个表达式可以被赋值给一个变量,或者直接被调用。 函数…

    JavaScript 2023年5月27日
    00
  • js 截取或者替换字符串中的数字实现方法

    下面是详细讲解“js 截取或者替换字符串中的数字实现方法”的完整攻略,步骤如下: 1. 利用正则表达式匹配数字 在 JavaScript 中,可以使用正则表达式来匹配字符串中的数字。以下是一个示例代码: const str = "This is 123456 a string with numbers 789"; const number…

    JavaScript 2023年5月28日
    00
  • javascript 系统文件夹文件操作及参数介绍

    下面是关于“javascript 系统文件夹文件操作及参数介绍”的完整攻略。 标题 JavaScript 系统文件夹文件操作 介绍 JavaScript 可以通过 Node.js 模块 fs 来操作系统文件夹和文件。其中,fs 模块提供了一系列的 API,让开发者能够以代码的方式对文件进行读写、更改、创建、删除等操作。 API 参数介绍 以下为几个常用的 A…

    JavaScript 2023年5月27日
    00
  • JS传递对象数组为参数给后端,后端获取的实例代码

    下面是关于“JS传递对象数组为参数给后端,后端获取的实例代码”的详细攻略。 传递对象数组给后端 在JavaScript中,我们可以使用JSON.stringify()方法将一个JavaScript对象或数组转换为JSON字符串,然后将其作为参数传递给后端。后端可以使用对应的解析方法将JSON字符串转换为具体的对象或数组。 示例1: 以下是一个包含对象数组的J…

    JavaScript 2023年5月27日
    00
  • JavaScript中极易出错的操作符运算总结

    JavaScript中极易出错的操作符运算总结 在JavaScript编程中,操作符运算是非常常见的。但是,可能会有一些操作符运算容易出错,导致程序行为不符合预期。因此,我们需要了解并避免这些错误。 1. 严格相等运算符 在JavaScript中,使用双等号==进行非严格相等判断时,会发生隐式数据类型转换,可能会导致预期之外的结果。因此,在进行相等比较时,我…

    JavaScript 2023年5月28日
    00
  • JavaScript高级教程之如何玩转箭头函数

    JavaScript高级教程之如何玩转箭头函数 介绍 箭头函数是ES6引入的新概念,它可以更方便地创建匿名函数,比传统的函数表达式更加简洁。本文将介绍箭头函数的使用,包括语法、应用场景、this指向和与传统函数表达式等的区别。 语法 箭头函数的语法如下: (param1, param2, …, paramN) => { statements } 或 (…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部