复习:对象
问题一:
多个数据的封装提
一个对象对应现实中的一个事物
问题二:
统一管理多个数据
问题三:
属性:组成:属性名+属性值 (属性名为字符串,属性值任意)
方法:(特别的属性):函数
问题四:
object.属性名:简单,但特殊字符--或者空格无法使用 变量名不确定也无法使用
object["属性名"]:通用
复习:函数
问题一:实现特定功能,b条语句的封装体
问题二:复用
便于阅读/交流
问题三:函数声明 function fun(){}
表达式:var a=new Function(){}
问题四:
obj.test()
test()
new test()
test.call/apply(obj)
回调函数
理解:一个'事件'(广义事件)发生就会执行。比如加载、按按钮等
问题二:
dom事件
ajax请求
生命周期
iief
直译:立即执行的函数
this关键字:
正式学习:
原型
理解:函数是一个object类型。故而我们可以object类中再写入我们的方法,既:上面的fun.prototype.新方法 function(){}
函数原型中带有一个构造方法,该构造方法指向自己。而这个构造方法表示我们可以创建实例,比如Date()包我们可以写做Date d=new Date ()
显示原型和隐示原型
无论是函数protoType还是实例__proto__他们都是引用类型。既:保存的都是地址。不会影响到我们的object对象
原型链
这三句代码结合着看:第一二句表示Foo其实是被Function()赋值。故而Foo也应该有__proto__属性。第三句和第二句结合看,其实是说在做第三局Foo=的复制之前。其实Function自己先创建对象。才被赋值到Foo。