JavaScript类的定义和实例化

类的定义

严格的说,JavaScript 是基于对象的编程语言,而不是面向对象的编程语言。

在面向对象的编程语言中(如Java、C++、C#、PHP等),声明一个类使用 class 关键字。

例如:public class Person{}

但是在JavaScript中,没有声明类的关键字,也没有办法对类的访问权限进行控制。

JavaScript 使用函数来定义类。

语法:
function className(){
    // 具体操作
}


例如,定义一个Person类:

function Person() {
    this.name=" 张三 ";  // 定义一个属性 name
    this.sex=" 男 ";  // 定义一个属性 sex
    this.say=function(){  // 定义一个方法 say()
        document.write("嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + "。");
    }
}

说明:this 关键字是指当前的对象。

创建对象(类的实例化)

创建对象的过程也是类实例化的过程。

在JavaScript中,创建对象(即类的实例化)使用 new 关键字。

语法:
new className();

将上面的 Person 类实例化:

var zhangsan=new Person();
zhangsan.say();

运行代码,输出如下内容:
    嗨!大家好,我的名字是 张三 ,性别是 男 。

定义类时可以设置参数,创建对象时也可以传递相应的参数。

下面,我们将Person类重新定义:

function Person(name,sex) {
    this.name=name;  // 定义一个属性 name
    this.sex=sex;  // 定义一个属性 sex
    this.say=function(){  // 定义一个方法 say()
        document.write("嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex);
    }
}
var zhangsan=new Person("小丽","女");
zhangsan.say();

运行代码,输出如下内容:
    嗨!大家好,我的名字是 小丽 ,性别是 女 。

继续学习
||
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script>function Person(name,sex) { this.name=name; // 定义一个属性 name this.sex=sex; // 定义一个属性 sex this.say=function(){ // 定义一个方法 say() document.write("嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex); } } var zhangsan=new Person("小丽","女"); zhangsan.say();</script> </head> <body> </body> </html>
提交重置代码