发现JS里个很有意思的特性
发现JS里个很有意思的特性,看下面的代码
[javascript]
var arr=['a', 'b','c'];
alert(arr.sort);
alert(arr.sort());
这两行alert看起来差不多,但效果完全不一样了,第一个是作为arr的属性调用sort的;第二个则是作为arr的一个方法调用的。alert出来的结果自己不一样了。
再想想JS中对对象的调用方法:
[javascript]
var obj = {a:’aa’,b:’bb’}
alert(obj.a);
alert(obj['a']);
所以我想使用访问数组的方法去访问对象的方法应该也可以:
[javascript]
var arr=['a', 'b','c'];
alert(arr['sort']);
出来的结果同样是作为arr的属性被调用,这样也成,呵呵,还真有意思。
再想想这个特性要怎么利用。回到发现这特性之初,sort()本来是array的排序方法,在看人家的代码时发现这样写,似乎是用来判断arr是否为数组类型的对象。
再回想下,前几天面试时教官同样问到这问题,当时一无所知的囧样,郁闷!
回到话题,所以这特性可用来判断数据类型的,可以找些只有一种类型的数据才有的方法来判断;还有的话就是可以用来看JS的开发者的写的代码了!^_^////