仰望本文所述对我们的javascript程序设计具备扶助。

永利集团304手机版,function
   JSClass
   (
   )
{
   this.Attribute1 = null;
   this.Attribute2 = null;
   // …
}
    推行toString()后的strFun里代码也是其一样子。

var obj={name:”tudouya”,”sex”:”man”}; 
#八个天性能够加双引号也能够不加
var obj={“!”:”hello world”};  #属性名包罗特殊字符时必须加双引号

//得到x的项目,重返类型名称
function getType(x) {
//如果x为null,则返回null
if (x == null) return “null”;
var t = typeof x;
//假设x为简便类型,则赶回类型名称
if (t.toLocaleLowerCase() != “object”) return t;
//调用object类的toString方法猎取类型音信
//object.toString方法重返类似那样的信息[object 类名]
t = Object.prototype.toString.apply(x).toLowerCase();
//截取toString方法再次来到值的类名部分
t = t.substring(8, t.length – 1);
if (t.toLocaleLowerCase() != “object”) return t;
//检查x确实为object类型
if (x.constructor == Object) return t;
//从构造函数得到类型名称
if (typeof x.constructor == “function”)
return getFunctionName(x.constructor);
return “unknow type”;
}
//获得函数名称
function getFunctionName(fn) {
if (typeof fn != “function”) throw “the argument must be a function.”;
var reg = /\W*function\s+([\w\$]+)\s*\(/;
var name = reg.exec(fn);
if (!name) {
return ‘(Anonymous)’;
}
return name[1];
}

var getObjectClass = function (obj) {
 if (obj && obj.constructor && obj.constructor.toString()) {
   /*
    * for browsers which have name property in the constructor
    * of the object,such as chrome 
    */
   if(obj.constructor.name) {
    return obj.constructor.name;
   }
   var str = obj.constructor.toString();
   /*
    * executed if the return of object.constructor.toString() is 
    * "[object objectClass]"
    */
   if(str.charAt(0) == '[')
   {
     var arr = str.match(/\[\w+\s*(\w+)\]/);
   } else {
     /*
      * executed if the return of object.constructor.toString() is 
      * "function objectClass () {}"
      * for IE Firefox
      */
     var arr = str.match(/function\s*(\w+)/);
   }
   if (arr && arr.length == 2) {
      return arr[1];
   }
  }
  return undefined; 
};

    this.toString = function()
    {
       return ‘[class JSClass]’;
    };
 }
    我们转移三个它的实例:var jsclass = new JSClass();
    可是若是应用alert(typeof(jsclass)),大家不得不获得’object’。而是用alert(jsclass),大家却获得'[class JSClass]’,这是目标实例暗中同意调用toString()方法的结果。当然大家能够把类名称”JSClass”使用toString()方法来回到,然而这种借助手动type来保管科学的不二秘技并有的时候绝对美丽好。

复制代码 代码如下:

复制代码 代码如下:

正文实例呈报了javascript实现类似java中getClass()得到目的类名的措施。分享给大家供我们参照他事他说加以考察。具体如下:

    this.Method1 = function()
    {
       // …
    };

代码示例:

本条功用需求写一些代码来促成。上面包车型客车函数能够获取八个变量的品种,调用时传递多少个变量进去,会回去用字符串形式描述的变量类型。

您只怕感兴趣的稿子:

  • 关于vue.js过渡css类名的了然(推荐)
  • 获得JavaScript用户自定义类的类名称的代码
  • 基于JavaScript完成类名的丰裕与移除

<script language=”javascript”>
alert(__typeof__(jsclass));
alert(__typeof__(JSClass));
alert(__typeof__(1));
alert(__typeof__([]));
alert(__typeof__({}));
</script>
    结果个别为:”JSClass”, “Function”, “Number”, “Array”和”Object”。

其一函数的应用形式比较轻便,大家能够自动尝试。当对有个别JSON字符串应用该函数今后,该JSON就被转移为javascript的指标,也正是说当用typeof运算符查看该函数的品类时,再次回到的值是Object。
无差别于有几许亟需小心的是,该函数是ECMAScript5过后才支撑的,固然是旧版本的浏览器那么大概不辅助该函数。消除的办法是加载一个兑现该函数的js文件,即json2.js。若是使用的是JQuery框架,jQuery.parseJSON(),该函数调用了JSON.parse()方法。
有关利用eval()方法剖判JSON,这么些等深切学习后会记录下来。

您只怕感兴趣的稿子:

  • JavaScript基于自定义函数剖断变量类型的完毕形式
  • js中决断变量类型函数typeof的用法计算
  • javascript中对变量类型的推断方法
  • 详细剖析JavaScript变量类型
  • js推断undefined变量类型应用typeof
  • Js检查变量类型的代码()
  • js
    变量类型转换常用函数与代码[比较全]
  • JavaScript的变量成效域深刻精通
  • 关于javascript
    回调函数中变量作用域的商量
  • JavaScript变量类型以及变量成效域详解

如叁个对象 console.log(obj);
获取的是[object
HtmlTableCellElement]假虚拟要多个函数能够回到HtmlTableCellElement
js中暗中同意未有这么的函数 能够和睦达成三个

    大家由此对象实例的constructor属性,能够博得其构造函数的定义,而构造函数的名字也正是JavaScript用户自定义类的类名称。对于地点的例证,实践 var strFun = jaclass.constructor.toString(),strFun便是构造函数的原始语句定义(和上边语句块内容一律)的字符串。大家从strFun中抽出”函数名”(类名)就行了,不过这里须求留心。Function类的实例推行toString()时并不会格式化代码,比方大家把JSClass的构造函数写成如下格式:

在将javascript对象调换为JSON的时候,有一点是索要大家注意的:
若果指标中包含有值为函数和日期的习性,JSON会忽略值为函数的习性,并将值为日期的特性调换为字符串。
代码示例:

在javascript中绝非能够回到特定类型名的函数

 function JSClass()
 {
    this.Attribute1 = null;
    this.Attribute2 = null;

var jsonString={“name”:”tudouya”};  #定义JSON时必须加双引号

笔者们通晓,就算JavaScript是依赖对象(object-based)的言语。可是接纳其实质(prototype)个性,我们完全能够完结丰裕sexy的OO编成框架,那些可以看看卓越论坛的稿子’基本上完结 javascript 的 OOP (0423版)’。

1.定义javascript对象