打好基础,查漏补缺
基础是重中之重
对象的创建方法
1.字面量 var obj={}
2.构造函数
1)系统自带的构造函数 new Object() Array() Number()
var obj = new Object()
2)自定义 约定 大驼峰式命名规则
function Person (){
this.name = 'To'
this.height= 170
this.health = 100
this.smoke = function(){
console.log(I am smoking!!!)
this.health --
//这个this我理解是在作用域上找
}
}
var person = new Person()
var person1 = new Person()
构造函数的内部原理
当new操作符操作之后 构造函数会执行三步
1、隐式在构造函数声明 this变量
2、this.xx = xx
3、隐式return this
function Person (name,age){
//1. var this = {__proto__:Person.prototype}
// 2 . this = {name,age}
this.name = name
this.age = age
//3. return this // 注意 new操作符之后 显示return 中断只能用Object 类型
}
var person1 = new Person('To',18)
包装类
原始类型是没有属性的,但为什么String有length属性?
var num = new Number(123) // 数字对象 可以增加,能参与运算,运算完以后变为数字。
var str = new String('abc') // 字符串对象
var bol = new String(true) // 布尔对象
<!-- 分割线 -->
var num = 4
num.len = 3
// new Number(4).len = 3 ; delete
//new.Number(4)
console.log(num.len) // undefined
这个隐式的过程叫包装类