前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS笔记(三):数组、函数、类

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

作者头像
free赖权华
发布2018-08-02 15:15:43
1.2K0
发布2018-08-02 15:15:43
举报
文章被收录于专栏:赖权华的笔记赖权华的笔记

(一) 数组

代码语言:javascript
复制
 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))

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

代码语言:javascript
复制
 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))

(三) 类

代码语言:javascript
复制
 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))
代码语言:javascript
复制
 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))

(三) 类的继承

代码语言:javascript
复制
 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())
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-07-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档