JS里面,普通的function也可以通【转载请注明来源】【原创内容,转载请注明出处】过new进行实例化,成为一个对象。而ES【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】6引入的class是个阉割版本,导致cl本文作者:唐霜,转载请注明出处。【本文受版权保护】ass缺失了作为class的特征,cla【原创不易,请尊重版权】【作者:唐霜】ss可以理解为封装的function。所【版权所有,侵权必究】【本文首发于唐霜的博客】以,在JS里面区分一个值是functio转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。n还是class是比较麻烦的,目前TC3【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。9已经在考虑加入[[FunctionKi【转载请注明来源】【本文首发于唐霜的博客】nd]]来进行区分。目前,我们可以通过一【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。些办法来区分,如果是在纯浏览器环境下,我著作权归作者所有,禁止商业用途转载。【作者:唐霜】们有如下的一些办法:
【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】原创内容,盗版必究。本文作者:唐霜,转载请注明出处。- 通过字符串 本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。
把function或class与空字符串【作者:唐霜】【版权所有】唐霜 www.tangshuang.net连接,得到字符串就可以看出来。
【本文首发于唐霜的博客】原创内容,盗版必究。【未经授权禁止转载】- 通过prototype的discript著作权归作者所有,禁止商业用途转载。【关注微信公众号:wwwtangshuangnet】or 本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。
对于class A而言Object.ge本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】tOwnPropertyDescript著作权归作者所有,禁止商业用途转载。【版权所有,侵权必究】or(A, ‘prototy著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.netpe’)的writable为【本文首发于唐霜的博客】【原创内容,转载请注明出处】false,而对于function a而【本文首发于唐霜的博客】未经授权,禁止复制转载。言,Object.getOwnPrope【转载请注明来源】【未经授权禁止转载】rtyDescriptor(a, 【本文受版权保护】【本文受版权保护】216;prototype’【未经授权禁止转载】本文作者:唐霜,转载请注明出处。)的writable为true。
【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。- 通过arguments 【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net
对于class A而言,A.argume【关注微信公众号:wwwtangshuangnet】【本文首发于唐霜的博客】nts会报错,而对于function a【本文首发于唐霜的博客】【作者:唐霜】而言,a.arguments为null。
【作者:唐霜】【关注微信公众号:wwwtangshuangnet】这些方法都抵挡不住现在很多编译工具会把c本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】lass编译为ES5的function,本文版权归作者所有,未经授权不得转载。【原创不易,请尊重版权】这导致这些特性都失效,所以能不能用还要看未经授权,禁止复制转载。【本文受版权保护】你项目里面的编译是怎么做的。
本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net
