欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS笔记(三):数组、函数、类

程序员文章站 2022-05-18 18:21:45
(一) 数组 (二) 函数调用和方法调用 (三) 类 (三) 类的继承 ......

(一) 数组

 1 //创建数组
 2 var the_array = [1,2,3,4,'5']
 3 
 4 console.log(the_array[0]) //读取索引为0的数据
 5 the_array[5] = '赋值' //写数据
 6 
 7 //在数组末尾添加一个元素,,允许添加多个数据,例如:the_array.push('1','2')
 8 the_array.push('末尾添加一个数据')
 9 console.log(the_array)
10 //pop删除数组末尾的数据并返回,和PYTHON列表的POP类似(不同的是JS只能删除末尾的数据)
11 //另外还有shift()和unshift(),shift()删除,unshift()添加1个或多个元素。不同的是,这2个方法操作的数据数组头部的元素
12 console.log(the_array.pop())
13 //Array.join()连接所有元素并返回一个字符串,都差不多
14 console.log(the_array.join())
15 A = the_array.join()
16 //String.split()则将字符串拆分为数组
17 console.log(A.split(','))
18 //另外还有,Array.sort()排序,Array.slice()切片 (例如A.slice(0,3))

 JS笔记(三):数组、函数、类

(二) 函数调用和方法调用

 1 //定义一个函数
 2 function f(x,y) {
 3     return x*y
 4 }
 5 //调用函数
 6 var x = f(1,2)
 7 console.log(x)
 8 //创建对象
 9 var the_obj = {}
10 //给对象the_obj定义一个名为m()的方法
11 the_obj.m = f
12 //看输出可以发现,对象the_obj的属性m的值是一个函数,这个时候称m()是对象the_obj的一个方法
13 console.log(the_obj)
14 //调用对象the_obj的方法m()
15 console.log(the_obj.m(1,2))

JS笔记(三):数组、函数、类

 

(三) 类

 1 //通过工厂函数定义一个类
 2 function people(pename,gender,age,hobby) {
 3     //通过括号里的(people.methods)和下面13行的people.methods对象定义类公有的方法(行为)
 4     //这里创建对象的时候,也可以用自己自定义的函数
 5     var r = new Object(people.methods)
 6     r.pename = pename
 7     r.gender = gender
 8     r.age = age
 9     r.hobby = hobby
10     return r
11 }
12 //定义该类事物共同的行为(类的方法)
13 people.methods = {getName:function () {return this.pename},
14     getMultiple:function (x) {return x*x}
15 }
16 var zs = people('张三','男','1000','修道')
17 console.log(zs)
18 console.log(zs.getName())
19 console.log(zs.getMultiple(2))

JS笔记(三):数组、函数、类

 1 //通过构造函数定义类
 2 //这里遵循一个常见的编程约定,定义构造函数即是定义类,并且类名首字母大写
 3 //而普通的函数和方法都是首字母小写
 4 function People(pename,gender,age,hobby) {
 5     this.pename = pename
 6     this.gender = gender
 7     this.age = age
 8     this.hobby = hobby
 9     
10 }
11 //属性名必须是prototype
12 //被所有People对象继承
13 People.prototype = {getName:function () {return this.pename},
14     getMultiple:function (x) {return x*x}
15 }
16 
17 var zs = new People('张三','男','1000','修道')
18 console.log(zs)
19 console.log(zs.getName())
20 console.log(zs.getMultiple(2))

JS笔记(三):数组、函数、类

(三) 类的继承

 1 //通过构造函数定义类
 2 function People(pename,gender,age,hobby) {
 3     this.pename = pename
 4     this.gender = gender
 5     this.age = age
 6     this.hobby = hobby
 7 
 8 }
 9 //属性名必须是prototype
10 //被所有People对象继承
11 People.prototype = {getName:function () {return this.pename},
12     getMultiple:function (x) {return x*x}
13 }
14 
15 
16 //仅定义子类
17 function Boy() {
18     //仅链接到父类
19     //调用父类的构造函数来初始化对象
20    People.apply(this,arguments)
21 
22 }
23 //将Boy设置为People的子类
24 Boy.prototype = new People()
25 Boy.prototype.constructor = Boy
26 
27 //重写父类的getName()方法
28 Boy.prototype.getName = function () {return this.age}
29 
30 var the_boy = new Boy('张三','男','1000','足球')
31 
32 console.log(the_boy)
33 console.log(the_boy.getMultiple(2))
34 console.log(the_boy.getName())

JS笔记(三):数组、函数、类