-
str是string(基本类型),本身是没有方法的。 当尝试把基本类型的str当做对象一样访问时,例如:str.length; 解释器会创建一个临时的包装对象,伪代码: [[tempObj]] = new String(str); [[tempObj]].length; // 返回具体的length; delete [[tempObj]]; // 销毁临时对象 重复访问str.length会重复创建这个临时对象。 所以str.t赋值可以成功,但再次访问str.t返回undefined,因为每次创建的临时包装对象都是不同的。查看全部
-
数据类型查看全部
-
obj.__proto__.hasOwnProperty('x');检查原型链上是否有属性x查看全部
-
instanceof 基于原型链判断对象类型 typeof 判断基本类型及函数类型查看全部
-
Object.defineProperty(obj,'x',{configuration:false,value:1});这样obj.x的内容就删不掉了查看全部
-
字符串 和 数组 的关系查看全部
-
数组 VS 一般对象查看全部
-
判断是否为数组的方式! 多了几种比书上的感觉!查看全部
-
seal(),freeze()查看全部
-
Object.create只传第一个参数时,是创建原型指向参数的空对象。但是其第二个参数是可以设置新对象的属性及权限的查看全部
-
Object.create()方法和通过new关键字创建对象相比,好处是:Student.prototype是个__proto__指向Person.prototype的空对象,而不是一个具有name和age属性的对象。这样,只继承了原型链上的方法,而不用让Student的实例的__proto__也具有那些不必要的方法。比如说我new Student()时没有传age的值,那么它会是undefine,往上则在他的原型链上也找不到age属性。查看全部
-
排序函数查看全部
-
使用 new操作符时,除非return的是对象,否则会忽略bind,返回的值会指向this,而此时this会被转换为一个空对象,这个空对象指向foo.prototype属性,此时有一个b的属性,并且值为100,所以返回{b:100}查看全部
-
且非严格模式下,null undefined是window,而严格模式下则对应是null跟undefined查看全部
-
call apply第一个要传入对象,就算不是对象,而且基础类型,也会被转为包装对象查看全部
举报
0/150
提交
取消