<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
// function Parent(username){
// this.username=username
// this.hello=function(){
// console.log(this.username)
// }
// console.log(this)
// }
// Parent()
// function Child(u,p){
// console.log(this)
// // this.m=Parent
// // this.m(u)
// // delete this.m
// // let fn=Parent.bind(this)
// // fn(u)
// }
// let c=new Child("qqq","222")
// Child创建新的对象然后this指向是指向本身,然后使其父类成为其一个属性,这是父类的指向也改变了
// Parent中其调用是windows调用的所以指向windows
// 构造函数中的继承就是通过改变父类中this指向来实现继承.
//通过bind来绑定this指向,绑定是哪个就是哪个
// function box(a,b){
// console.log(this,a,b)
// }
// var arr=[111]
// box.call(arr,1,3)
//
//
// function box(a,b){
// console.log(this,a,b)
// }
// var arr=[111]
// box.apply(arr,[1,2])
// 使用call和apply的方法时就已经在调用函数,然后一一对应将值赋给this,call和apply的不同之处在于参数不同,
// let arr=[2,4,5,6,2,90,34,22,4,223,322]
// console.log(Math.min(...arr))
// var a=Math.max.apply(null,arr)
// console.log(a)
__proto__原型指针
实例里面的__proto__原型指针都指向构造函数的原型对象
同一个构造函数的实例的原型指针都指向这个构造函数的原型对象
改变构造函数原型对象的属性,实例都会受影响
原型链
自身-原型-原型.....-object-原型(null)
找属性可以顺着原型链找,一层一层向上找,如果最后还找不到就是undefined
hasOwnProperty 检查对象本身是否具有某个属性,原型链上的检测不出来
继承
属性写在构造函数里
方法写在原型对象中
</script>
</body>
</html>
浙公网安备 33010602011771号