1 <script >
2 //对象知识
3 //*Q:什么是对象?
4 //*A:用来存储多个数据,多个数据的封装体,一个对象代表现实世界中的一个事物
5 //*Q:为什么要用对象?
6 //*A:统一管理多个数据
7 //*Q:对象的组成?
8 //*A:属性:属性名(本质上都是字符串)和属性值(任意类型)组成
9 // 方法:一种特别的属性(属性值是函数)
10 //*Q:如何访问对象内部数据?
11 //*A:.属性名 编码简单,有时不能用
12 // ['属性名'] 编码复杂,但能通用
13 //*什么情况下只能用['属性名']的方式
14 //*1.属性名包含特殊字符:- 空格
15 //*2.变量名不确定
16 var p={//一个对象代表
17 name:'jxb',
18 age:20,
19 setName:function (name) {
20 this.name=name
21 },
22 setAge:function (age) {
23 this.age=age
24 }
25 }
26 p.setName('Bob')//首先你的得知道括号前面是一个函数你才能加括号
27 console.log(p.name,p.name)//这里输出的是函数的定义
28 p['setAge'](23)
29 console.log(p['age'])//这里读取时候要注意
30
31 //1.属性名包含特殊字符:- 空格
32 var p={}
33 //给p对象添加这样一个属性值:content-type:text/json
34 //p.content-type='text/json'//这个地方会报错不能用
35 p.type='text/json'//这样真的可以添加属性
36 console.log(p.type)
37 p['content-type']='text/json'
38 console.log(p['content-type'])//注意这里的输出加了p['content-type']
39
40 //2.属性名不确定
41 var propName='myAge'
42 var value=20
43 // p.propName=value
44 // console.log(p.propName)//老师说这种方法不行,但我试了一下能行
45 p['propName']=value
46 console.log(p[propName])//试了一下感觉这个不能打印出来。
47
48 //函数知识
49 /*
50 1.什么是函数?
51 * 实现特定功能的n条语句的封装体
52 * 只有函数能执行,其他类型的数据不能执行
53 2.为什么要用函数
54 * 提高代码复用
55 * 提高阅读交流
56 3.如何定义函数
57 *函数声明
58 *表达式
59 4.如何调用(执行)函数
60 *test():直接调用
61 *obj.test():通过对象调用
62 * new test():通过new调用
63 * test.call/apply(obj):obj.test()这种方式只是临时的,临时让test成为obj的方法进行调用
64 */
65
66 /*
67 编写程序实现以下功能需求
68 1.根据年龄输出以下信息
69 2.如果小于18,输出:未成年,再等等吧!
70 3.如果大于60,输出:算了吧!
71 4.其它,输出:刚好
72 */
73 //函数声明的方式
74 function showInfo (age) {//用函数判断所有的情况
75 if(age<=18){
76 console.log('未成年,再等等吧!')
77 }else if(age>60){
78 console.log('算了吧!')
79 }else{
80 console.log('刚好')
81 }
82 }
83 showInfo(20)
84
85 //表达式的方式
86 var fn2=function(){
87
88 }
89 //test.call/apply(obj)
90 var obj={}
91 function test2(){
92 this.xxx='jxb'
93 }
94 //obj.test2()//不能这样调用,也就是不能直接调用
95 test.call(obj)//但JS允许这样调用//可以放一个函数成为任意对象的方法进行调用
96 </script>