面向对象

面向对象到组件开发
object对象创建一个对象有两种方法
1.字面量直接创建
var obj ={
name:
age:
}
obj.name obj.age 这就是创建对象的一个方法 字面量的创建方式
{}是一个创建对象的一个界定符
对象里有属性 自己创建 属性property 属性也有值value
对象就是属性的无序集合
可以用.语法获得对象的属性
K:V json 中的K需要加引号 json是一个用于交换的属性
json 后台也需要用
但是obj中的如果K的值是数字或者空格特殊数字 保留字
需要用方括号访问obj【】这样子访问
2.new创建
new object
var obj = new Objecct();
obj.name = value;
追加属性 刚创建完之后的对象是一个空对象 里面没有属性
new是一个运算符 var是操作符 表示新创建一个对象
new是一个函数的调用方式
字面量更有封装的感觉
对象的属性值可以是任何东西 可以使函数 对象 正则都可以
当一个函数是对象的属性的时候 我们称这个函数是对象的
方法
对象的方法:
对象函数内部的this是指的这个对象
调用函数的方式
1 ()中的this是window object window
2 函数绑定给一个事件 name事件发生的时候函数
将执行 this就是触发事件的那个HTML对象
3 用定时器来调用函数 函数里面的this 是window
比如 setInterval(fun,1000)
4 var obj = {}这样创建一个对象 里面有一个函数
用.的方式调用的方法 this指的是这个对象
5 我们设置一个函数的时候 可以通过applay call
来调用这个函数 此时能够人工设置函数里面的this
是谁
(对象方法的意思就是操作自己的属性,如果不操作
自己的属性 用方法干嘛)

相似对象

构造函数中必须要有this对象
如果没有this就不能绑定属性了 但是语句可以
执行

构造函数不能有return 如果则会返回return的东西
这个叫工厂模式

构造函数
1 创建一个新的空的对象
2 将这个this绑定到刚才的那个隐秘的新对象上面
3 执行函数里面的语句
4 返回这个新的对象
原先的对象叫做obj类 new出来的对象叫做obj的实例
JavaScript没有类的概念 是基于对象 不是面向对象

(游戏素材)
原型prototype
在js中 任何一个函数都有一个prototype属性 指向一个对象
这个对象是一个空对象 是一个object类型
这个函数的原型对于普通函数来说没用
但是函数是一个构造函数 函数的原型很有用
只有函数有原型
【】
当一个对象被new出来的时候 还会把构造函数的原型对象里的属性加在自己
身上 这个被new出来的对象.——proto——可以调出构造函数的原型
注:任何一个对象都有——proto——属性 这个属性是chrome自己的
属性 这个属性指向自己的原型 任何一个对象都有自己的原型对象

我们的Javascript 有一个原型链查找的机制 当我们试图访问一个对象
身上的属性时 如果有则返回值 如果没有将访问他的原型对象身上有没有这个值
如果有范围他的原型对象身上的值

【】
上面这些不是我的理解
就是每一个函数都有自己的原型 就是fun.prototype 但是出了一个
object没有 当这个函数被当做构造函数的时候 也就是 new运算符
操作了之后 这个原本的函数将自己的所有属性都给了这个新的被
构造出来的函数 这个fun.prototype 称为这个新的构造出来的函数的
原型对象 可以用fun1.下户线*2proto下划线*2 来访问这个原型对象
任何一个对象都有下划线这个属性指向自己的原型对象
OK
原型链机制
constructor属性 他是原型的一个属性
constructor构造器
object是一个函数 是系统内置的构造函数
object.prototype是所有对象原型链的终点
当一个对象打点调用某个方法的时候 会沿着自己的原型链去寻找

对象是什么
数组是对象 原型链终点构造器是 function Array(){}
函数也是对象 只不过能执行

 

.....................................................
原型的用途

 

posted @ 2019-07-02 19:19  星星0828  阅读(154)  评论(0编辑  收藏  举报