1、优点是非常纯粹的继承关系,实例是子类的实例,也是父类的实例。子类可以访问父类新的原型方法和属性。2、缺点是替换原型后需要重写方法。不能用对象字面量创建原型方法。无法实现多继承。所有实例共享引用类型。实例functionPerson(){ }
2023-02-26在js中我们有四种关系操作符可以使用,类似数学中学过的大于或小于,下面我们就它的使用带来介绍。1、两个操作数都是字符串,比较ASCII编码(区分大小写)。'13' < '3';返回true,比较的是ASCII码2、一个为数字,另一个不是数字,转化为
2023-02-261、类型相同,基本类型,比较值是否相同。对象,比较引用地址是否一致。{ id: 1 } == { id: 1 }返回false,他们引用不同,不是一个对象2、字符串与数值比较,转化为Number。3、对象与基础类型比较,对象遵循上述转化规则去比较。let a = {}; a == 0;返
2023-02-261、max方法和min方法用于找到一组数据中的值和最小值,可以接受任意多个参数。Math.max(3,54,32,16);//54 Math.min(3,54,32,16);//32、如果传入的参数中有不能转化为数字类型的值,则会返回NaN。Math.max('abc',undefined,{});//只要
2023-02-261、ceil对小数进行向上舍入。2、floor对小数进行向下舍入。3、round执行四舍五入。4、fround返回数值最接近的单精度(32位)浮点值表示。5、trunc取整数部分,删去小数部分。实例Math.ceil(25.9)//26 Math.ceil(25.1)//26 Math.floor(25.9)//25
2023-02-261、短路只存在于 && 和 || 中,当满足一定条件会让右边代码不执行。//逻辑且&& console.log(false&&20)//false console.log(5<3&&20)//false console.log(undefined&&20)//undefined console.log(null&&20)//null console.log(0&&20)//0 c
2023-02-261、构造函数优点是,构造函数创建的属性和方法可以在实例之间共享。2、缺点为如果实例之间有相同的方法,这个方法会在每个实例上创建一遍,这样显然会造成系统资源的浪费。实例functionPerson(name,age,sex){ this.name=name; this.age=age; th
2023-02-261、在实例中添加一个原型中已存在的属性或方法,该属性或方法会屏蔽原型中的同名属性或方法。2、在访问该属性或方法时,首先返回的是实例中的属性或方法。实例functionPerson(){} Person.prototype.name="DefaultName"; letp1=newPerson(); l
2023-02-261、引用属性问题,在原型对象中添加引用值属性,虽然我们通常会把属性都放在构造函数中,但在原型继承上又会出现。2、子类在实例化时不能给父类构造函数传参。实例functionA(){ this.arrs=[1,2,3] }; functionB(){} B.prototype=newA(); letc1=
2023-02-261、由于子类构造函数的原型对象跟父类无关,所以子类实例无法调用父类的原型对象的属性或方法。2、只能继承父类构造函数的属性或方法。父类构造函数中的属性或方法将会在每个子类实例中创建一份,显得很繁琐。实例functionA(name,age,sex){ t
2023-02-261、组合继承综合了原型链和盗用构造函数,将两者的优点集中了起来。既可以把方法定义在原型上以实现重用,又可以让每个实例都有自己的属性。2、过程中调用两次父类构造函数。一次是子构造函数使用apply/call调用的父构造函数,另一次是子类使用
2023-02-261、任何地方都可以访问全局作用域中定义的变量。2、在最外层定义函数和最外层函数之外定义的变量具有全局作用域。3、imply global是未经声明直接赋值的变量。实例functionfunc(){ implyGlobalVar='global'; varlocalVar='loc
2023-02-26发布日期:2023-08-07人气:0
发布日期:2023-08-07人气:0
发布日期:2023-08-07人气:0
发布日期:2023-08-08人气:0
发布日期:2023-08-08人气:0
发布日期:2023-08-10人气:0
发布日期:2023-08-10人气:0