-
闭包好处:1.方便2.封装坏处:1.内存泄漏2.性能消耗3.空间浪费查看全部
-
判断this的指向(1-4优先级逐级递减,1优先级最高,4优先级最低): 1、函数被new调用,this指向由new新构造出来的这个对象; 2、函数通过call()、apply()、bind()调用,this指向被绑定的对象; 3、函数作为方法被调用,this指向这个对象(即常说的对象上下文); 4、默认(非严格模式)情况下,this指向window, 严格模式下,this指向undefined。查看全部
-
function b(){return this.a;};var a=b.bind({a:"text"});console.log(a());通过bind方法,可以把this传给新的环境变量查看全部
-
函数参数,若未传入则初始为undefined 函数声明,若发生命名冲突则覆盖 变量声明,初始化该变量为undefined,如果命名发生冲突则忽略查看全部
-
javascript作用域有三种:全局、函数、eval查看全部
-
1.javascirpt 没有块级作用域 2.构造函数可以获取全局变量,但是获取不到构造函数之外的变量 3.变量声明的时候,为了不被其他数据访问,可以在最外层写个function,变成函数的局部变量,或者在函数前面加!,使变成函数表达式,而不是函数声明查看全部
-
查询属性: 1、<property> in <object>会判断<object>整个原型链上是否有属性<property>; 2、<object>.hasOwnProperty(<property>)只会判断<object>自身是否有属性<property>。查看全部
-
添加、修改和删除Student原型上的属性,会影响已创建的实例s1。 var s1 = new Student(); Student.prototype.x = 101; s1.x // == 101 但是重写Student的prototype属性,不会影响已创建的实例s1(因为重写会切断现有原型与已存在的实例间的联系),但是会影响新创建的实例s2。 Student.prototype = {x:22}; var s2 = new Student(); s1.x // == 101 s2.x // == 22查看全部
-
1、原型链的终点是Object.prototype(指向null);但通过Object.create(null)和bind(null)等类似的方法创建/设置的对象时,终点为null。 2、查找属性时,从自身开始顺着原型链向上查找,直到找到(返回值)或到达终点(返回undefined)为止。 3、修改和删除属性时,只能操作自身的属性。查看全部
-
在使用JSON.stringify时候,若是a:null,b:Infinity,则会变成a:null,b:null查看全部
-
属性标签使用查看全部
-
in操作符回向原型链上面进行查找操作查看全部
-
'use strict'严格模式下面提供了更强的错误检查,修复了语法上面的一些不足,变得更为安全查看全部
-
原型继承的案例,需要好好理解。 1、Person.call(this, name, age); 2、Student.prototype = Object.create(Person.prototype); 【这里不用Student.prototype=Person.prototype,因为这样会使Student.prototype和Person.prototype指向同一个对象,在Student.prototype中增删改一个属性,会导致Person.prototype也增删改同样的属性。】 【此句必须在为Student.prototype添加属性前调用】 3、Student.prototype.constructor = Student; 【修改prototype会导致constructor变为Person,此处重置一下,以保持一致性;不改也没什么问题。】查看全部
-
处理完内部的catch时若它抛出一个try语句,则外部的catch执行之前会先执行内部的finally语句查看全部
举报
0/150
提交
取消