JavaScript中比较抽象的东西(自己用)

2年前 (2022) 程序员胖胖胖虎阿
269 0 0

一.JS的类和对象

1.用CLASS,声明一个类,类名依然大写
2.类里面有个constructor函数,可以接收传递过来的参数,同时返回实例对象
3.constructor函数不需要加function!!!!!!!!!!!!!!!!!!!!!!
4.constructor函数只要new生成实例时,就会被调用
5.!!!!!!!!!类名后没有小括号()!!!!!!!!!!!!!!
JavaScript中比较抽象的东西(自己用)

二.关于构造函数

1.构造函数里的属性和方法称为成员,成员可以添加
2.构造函数的静态成员和实例成员
3.构造函数里可以添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this上添加
4.一定要实例化对象!!!!!!!!!!!!!!!!!!!!!!!!!!
JavaScript中比较抽象的东西(自己用)

三.关于prototype,--proto--

1.构造函数具有prototype,对象具有--proto—属性
2.每一个构造函数都有一个prototype属性,指向另一个对象,这个对象所有的属性和对象都会被构造函数所拥有
3.一般情况下,公共的方法放在原型对象上,公共的属性放在构造函数里
JavaScript中比较抽象的东西(自己用)

之所以,s1能够访问Way1,是因为s1存在--proto--属性指向构造函数的原型对象
注意到,Way的原型对象等于s1的对象原型
JavaScript中比较抽象的东西(自己用)

方法的查找规则:
先看s1本身有无方法,如果有就执行,没有,就去构造函数的原型对象(Way.prototype)身上去找

原型对象的constructor属性:
constructor属性指向构造函数,记录该对象引用于哪个构造函数
很多情况下,需要手动把constructor属性指回原来的构造函数
JavaScript中比较抽象的东西(自己用)

JavaScript中比较抽象的东西(自己用)

成员查找机制:
按照原型链,对象本身没有的话,找对象的--proto--,再没有,找--proto--,直到null

利用原型对象扩展内置对象方法:
JavaScript中比较抽象的东西(自己用)

四.关于this指向

1.单独的this,指向windows对象
alert(this) //this-->window
2.全局函数中的this,指向window对象

  function demo (){ 
    alert(this)}
// this-->window
  demo()

3.严格模式下,undefined

function demo ( ) { 
'use strict'
alert(this) //undefined
}
demo()

4.构造函数里的this,指向实例化对象(构造函数的原型对象的this也是一样指向)

function demo (){ 

//alert(this)  //this-->object
this.testStr = 'this is a test'

} 
let a = new demo()
alert(a.testStr)

5.call方法里的this

function demo () {
alert(this)
}
demo.call('abc') //abc
demo.call(null) //this-->window
demo.call(undefined) //this-->undefined
版权声明:程序员胖胖胖虎阿 发表于 2022年9月16日 上午4:16。
转载请注明:JavaScript中比较抽象的东西(自己用) | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...