-
面向思想: '类' 实例
JS中的内置类: Array String Number Function Regrxp Date Object 字面量 var ary =[] 构造函数 var ary = new Array() 万物皆对象。、、 自定义类 function A(){} 自定义类的实例只能通过new 的方式创建。; 常见设计模式 单例模式 高级单例模式 工厂模式 构造函数模式 原型模式 -
原型链 ————> 原型图
/* 对于原型图 有三句话 ,每一个函数(类)都有一个 默认的 prototype 属性 指向自己的原型对象 每一个实例(对象)都有一个__proto__的属性,指向所属类得原型对象 每一个默认的原型对象上 都有一个 constructor 属性 指向对应的构造函数本身
/普通函数的执行过程 开辟一个作用域 形参赋值 变量提升 代码从上到下执行 / new 执行时 开辟一个作用域 形参赋值 变量提升 把this的指向改成这个堆内存 然后代码从上到下执行。 */
-
私有属性
//in 是用来查看某个属性 是否属于某个对象 换句话说 就是该对象能否调用到该属性 //in 只能判断出 某个属性是不是某个对象 但是不能区别出是否是他的私有属性 // obj.hasOwnProperty('xxx') 这个属性可以用来查看 xxx是否是 obj的私有属性 // hasOwnProperty 方法在基础类得原型上, 所以任何数据类型 (除去 null undefined )都能调用到该方法。。 //hasPubProperty
// Object.prototype.hasPubProperty = function (key) { // //this 就是我们要用的obj; // //要去判断key是不是 this 的一个共有属性 // //首先是他的属性 然后不是私有属性
-
原型重构 :注意constructor 的指向;
-
xxx instanceof xxx2 查看xxx到基类的原型链上 是否存在 xxx2的身影。 // 存在结果就是 true 不存在 结果就是false // 值类型的数据 instanceof 谁 都是 false