-
var o={x:1,y:2,z:3}; 'toString' in o;//true o.propertyIsEnumerable("toString");//false var key; for(key in o){ console.log(key);//x,y,z } var obj=Object.create(o); var obj.a=4; var key; for(key in obj){ console.log(key);//a,x,y,z } var obj=Object.create(o); obj.a=4; var key; for(key in obj){ if(obj.hasOwnProperty(key)){ console.log(key);//a } }查看全部
-
RegExp对象方法查看全部
-
arguments是一个类数组的对象,原型并不是array.prototype,没有数组对象的方法。 坑:若参数未传进来,则argument和对应的参数是不存在可以改写的绑定关系。查看全部
-
在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。 1.在全局环境下,this永远是window. 2.如果函数Foo()作为构造函数用,那么其中的this就代表它即将new出来的对象。(仅限new Foo()的情况) 3.如果函数fn作为对象obj的一个属性时,并且作为对象obj的一个属性被调用时,函数中的this指向该对象。如果作为obj的一个属性的函数fn被赋值到了另一个变量中,并没有作为obj的一个属性被调用,那么this的值就是window,this.x为undefined。 4.当一个函数被call和apply调用时,this的值就取传入的对象的值。 5.特殊情况:函数f虽然是在obj.fn内部定义的,但是它仍然是一个普通的函数,this仍然指向window。查看全部
-
if 为了判断是否使用new运算符构造这个基类;通过new调用的函数,其this会 instanceof 当前对象DetectorBase;查看全部
-
模块化不暴漏变量和对象查看全部
-
es6的类也是源于原型链的模拟类,只不过添加了语法糖,语法糖在功能上对程序上没什么影响,它通过编译器转换,它是一种便捷的写法,增加了程序的可读性。查看全部
-
实现继承的方式 1.Student.protptype = Rerson.prototype; // 禁止使用,修改子类时会一并修改父类 2.Student.prototype = new Person(); // 不推荐使用,使用Person的构造器创建会带回Person的参数 3.Student.prototype = Object.create(Person.prototype); // 理想的继承方式【ES5之后才支持】查看全部
-
bosn 的 __proto__ 指向Student.prototype,bosn 的 __proro__的__proto__ 指向Person.prototype查看全部
-
1、instanceof左边一般是对象,右边一般是函数(构造器)。假如右边不是函数对象,会报错,假如左边不是对象,会返回false; 2、instanceof一般用来判断右边构造器的prototype属性是否出现在左边对象的原型链上。 3、从js的解释层面来讲,instanceof是比较对象的,执行环境不同,构造器不同,instanceof方法失效(不同window和iframe之间的对象类型检测不能使用instanceof)查看全部
-
在 ES5 中可以使用 defineProperty 来让创建的对象的原型上不拥有属性查看全部
-
直接修改已经创建的实例的原型,不会影响到实例,但是针对实例原型的属性的修改和增减是会产生影响的查看全部
-
可以学学查看全部
-
通过Object.create(null) 创建的的原型 不会链到 Object上。 所以没有_proto_ 和toString等等一些 一般对象的系统方法.查看全部
-
查看对象的prototype对象属性的方法查看全部
举报
0/150
提交
取消