在JavaScript中只要引用了字符串(数字、布尔值也是一样的)的属性,JS就会将字符串通过调用new String(str)的方式转换成对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁(真实实现并不一定是这样,但整个过程看起来是这样)。这个过程就叫包装对象。
2017-05-24
最赞回答 / winner_DOIT
首先清楚countMap1 和 countMap2是对象,其次清楚countMap1[t1]作用是给countMap1对象设置属性,然后countMap1[t1]++ 和countMap1[t1] = 1都是给countMap1的t1属性赋值,TYPES[i] 这个意思是获取数组里第i个位置的值,例如:TYPES[0] 的值为‘string’,最后 if(countMap1[TYPES[i]].length !== countMap2[TYPES[i]].length){ return false;}...
2017-05-22
如,function Student(){……}
var bosn=new Student();
//增加或删除Student.prototype上的属性会影响它所创建的实例bosn;但如果直接修改Student.prototype不会影响修改之前已经创建的实例bosn。
Student.prototype={y:2};
var bosn=new Student();
bosn.y;
//2
var bosn=new Student();
//增加或删除Student.prototype上的属性会影响它所创建的实例bosn;但如果直接修改Student.prototype不会影响修改之前已经创建的实例bosn。
Student.prototype={y:2};
var bosn=new Student();
bosn.y;
//2
2017-05-21
自己测试时infinity会报错。。。Uncaught ReferenceError: Indinity is not defined
2017-05-20
接上一条,看到4-4 get/set方法的5:00分钟时,老师又讲清楚明白了哈哈~~
给对象的属性赋值时(obj1.x = 10;):
如果obj1上没有x属性,会向其原型链查找,
c、如果原型链上x有set/get方法,还是走原型链上的set/get方法,而不会给obj1上添加新的x属性。此时如果需要给obj1添加x属性,使用Object.defineProperty(obj1,’z’,{value:10,configurable:true});
果然坚持看下去有收获!
给对象的属性赋值时(obj1.x = 10;):
如果obj1上没有x属性,会向其原型链查找,
c、如果原型链上x有set/get方法,还是走原型链上的set/get方法,而不会给obj1上添加新的x属性。此时如果需要给obj1添加x属性,使用Object.defineProperty(obj1,’z’,{value:10,configurable:true});
果然坚持看下去有收获!
2017-05-20
1:28老实说给对象赋值时不会向原型链上查找,后来我发现不绝对。
比如,给对象obj1赋值(obj1.x = 10;):
如果obj1上有x属性,修改其值。
如果obj1上没有x属性,会向其原型链查找,如果原型链上也没有x属性,那么x属性会被添加到obj1对象上;如果原型链上有x属性:
a、原型链上x属性writable:true,会在obj1上添加x属性,并屏蔽原型链上的属性,
b、原型链上x属性writable:false,这条赋值语句会被忽略,如果是在严格模式下会报错,最后读出的还是原型链上的属性
比如,给对象obj1赋值(obj1.x = 10;):
如果obj1上有x属性,修改其值。
如果obj1上没有x属性,会向其原型链查找,如果原型链上也没有x属性,那么x属性会被添加到obj1对象上;如果原型链上有x属性:
a、原型链上x属性writable:true,会在obj1上添加x属性,并屏蔽原型链上的属性,
b、原型链上x属性writable:false,这条赋值语句会被忽略,如果是在严格模式下会报错,最后读出的还是原型链上的属性
2017-05-20
if(arr1 instanceof Array &&arr2 instanceof Array) {if(arr1.length==arr2.length){if(arr1.map(function(x){return Object.prototype.toString.apply(x)}).sort().join()==arr2.map(function(x){return Object.prototype.toString.apply(x)}).sort().join())return true;return false;} return false; } return false;}