JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析

JS中类的静态方法、静态变量、实例方法、实例变量是面向对象编程中常用的概念。下面会详细讲解它们的区别、用法和实例分析。

静态方法(Static method)

静态方法和类的实例无关,它属于类本身。可以通过类名调用,而不是通过实例调用。通常用于实现一些公共的、与实例无关的功能。

静态方法的定义方式是在类中使用 static 关键字定义。示例代码如下:

class MyClass {
  static staticMethod() {
    console.log('This is a static method.')
  }
}

MyClass.staticMethod(); // 输出 'This is a static method.'

静态变量(Static variable)

与静态方法类似,静态变量也属于类本身。每个实例共享同一份静态变量,可以被所有实例共享和修改。通常用于存储公共的,与实例无关的数据。

静态变量的定义方式是在类中声明一个 static 关键字的属性。示例代码如下:

class MyClass {
  static staticProperty = 'This is a static property.'

  constructor() {
    console.log(MyClass.staticProperty)
  }
}

new MyClass() // 输出 'This is a static property.'
new MyClass() // 输出 'This is a static property.',两次输出结果一样

实例方法(Instance method)

实例方法是属于实例的方法,在实例化后才能使用。可以访问实例的属性和方法,也可以访问类的静态属性和方法。

实例方法的定义方式是在类中定义一个普通的方法。示例代码如下:

class MyClass {
  instanceMethod() {
    console.log(`This is a instance method. The value of myProperty is ${this.myProperty}.`)
  }
}

const myInstance = new MyClass()
myInstance.myProperty = 'foo'

myInstance.instanceMethod() // 输出:This is a instance method. The value of myProperty is foo.

实例变量(Instance variable)

实例变量与实例方法类似,是指实例所拥有的属性,只能被实例自身使用,不能被类或其他实例访问。通常用于存储对象的状态。

实例变量的定义方式是在类的构造函数中为 this 对象添加变量。示例代码如下:

class MyClass {
  constructor() {
    this.myProperty = 'This is a instance property.'
  }
}

const myInstance = new MyClass()
console.log(myInstance.myProperty) // 输出:This is a instance property.

示例分析

下面是一个示例,综合使用了上述四种成员:

class Calculator {
  static PI = 3.14159;

  add(a, b) {
    return a + b;
  }

  static multiply(a, b) {
    return a * b;
  }

  constructor() {
    this.result = 0;
  }

  getResult() {
    return this.result;
  }

  setResult(value) {
    this.result = value;
  }

  addResult(value) {
    this.result += value;
  }
}

const calculator = new Calculator();
calculator.setResult(10);
calculator.addResult(5);
console.log(calculator.getResult()); // 输出:15
console.log(Calculator.PI); // 输出:3.14159
console.log(Calculator.multiply(2, 3)); // 输出:6

上述代码定义了一个 Calculator 类,包含了一个保存计算结果的实例变量 result,以及一个修改计算结果的实例方法 addResult。还包含了一个静态变量 PI,表示圆周率。静态方法 multiply 实现了两个数的乘法。

通过实例对象 calculator 可以修改和访问 result 的值。通过类名 Calculator 和静态方法名 multiply 可以进行两数乘法计算,而不需要实例化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析 - Python技术站

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

相关文章

  • jQWidgets jqxPopover animationType 属性

    以下是关于 jQWidgets jqxPopover 组件中 animationType 属性的详细攻略。 jQWidgets jqxPopover animationType 属性 jQWidgets jqxPopover 组件的 animationType 属性用于设置弹出框打开和关闭时的动画类型。 语法 $(‘#popover’).jqxPopover…

    jquery 2023年5月12日
    00
  • jQWidgets jqxBarGauge customColorScheme属性

    jQWidgets jqxBarGauge customColorScheme属性 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI件和工具,包括表格、图表表单、历、菜单等。其中,jqBarGauge是jQWidgets中的一个组件,可以用于创建水平或垂直的条形图。jqxBarGauge提供了customColorScheme属性用于自…

    jquery 2023年5月9日
    00
  • 关于jQuery.ajax()的jsonp碰上post详解

    关于jQuery.ajax()的jsonp和post的使用,可以通过以下方式进行详细讲解: 1. 什么是jsonp和post 1.1 JSONP JSONP(JSON with Padding)是一种跨域技术,可以用于从其他域名获取数据。它通过动态创建script标签,将服务器返回的数据作为参数传递给一个回调函数,从而实现跨域请求。JSONP只能用于get请…

    jquery 2023年5月28日
    00
  • jQuery outerWidth()方法

    jQuery outerWidth()方法返回一个元素的宽度,包括它的padding和border,但不包括它的margin。 语法 $(selector).outerWidth(includeMargin) 参数:- selector :必需,一个jQuery选择器,指定要获取宽度的元素。- includeMargin :可选,一个布尔值,表示是否将元素的…

    jquery 2023年5月12日
    00
  • jQWidgets jqxListBox checkItem()方法

    jQWidgets jqxListBox checkItem()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中之一,本文将详细介绍jqxListBox的checkItem()方法,包括定义、语法和示例。 checkItem()方法的定义 jqxListBox的checkItem()方法用于…

    jquery 2023年5月10日
    00
  • jQWidgets jqxDataTable render()方法

    以下是关于“jQWidgets jqxDataTable render()方法”的完整攻略,包含两个示例说明: 简介 jqxDataTable 控件的 render() 方法用于重新渲染控件。该方法没有参数。 整攻 以下是 jqxDataTable 控件 render()的完整攻略: 调用 render() 方法 在 jqxDataTable 控件中,可以使…

    jquery 2023年5月11日
    00
  • 在css加载完毕后自动判断页面是否加入css或js文件

    在学习前端开发时,我们经常需要对页面是否已经加载完CSS或JS文件进行判断。这对于网站性能和用户体验来说非常重要。下面我将详细讲解如何在 CSS 加载完毕后自动判断页面是否加载完毕。 1. HTML 结构 首先,在正式编写代码之前,我们需要先构造一份基础的 HTML 结构,来验证页面是否已经加载完毕。假设我们的HTML代码如下: <!DOCTYPE h…

    jquery 2023年5月27日
    00
  • jQWidgets jqxToolBar getTools()方法

    以下是关于 jQWidgets jqxToolBar 组件中 getTools() 方法的详细攻略。 jQWidgets jqxToolBar getTools() 方法 jQWidgets jqxToolBar 组件 getTools() 方法用于获取工具栏中的所有工具。该方法不接受任何参数,返回一个包含所有工具的数组。 语法 $(‘#toolbar’).…

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