Object.toSource

  • 版本网址缩略名: JavaScript/Reference/Global_Objects/Object/toSource
  • 版本标题: Object.toSource
  • 版本 id: 334283
  • 创建于:
  • 创建者: ziyunfei
  • 是否是当前版本?
  • 评论

修订内容

{{ Non-standard_header() }}

概述

返回一个对象源代码的字符串表示.

Method of Object
Implemented in JavaScript 1.3
ECMAScript Edition None

语法

obj.toSource()

参数

无.

描述

toSource方法返回下面这样的值:

  • 对于内置的Object对象, toSource返回了下面的字符串:
function Object() {
   [native code]
}
  • 对于Object的实例,toSource会返回该实例源代码的字符串表示.

在调试时,你可以通过toSource来查看一个对象的内容.

还可以遮蔽内置的toSource方法.例如:

function Person(name) {
    this.name = name;
}

Person.prototype.toSource = function Person_toSource() {
    return "new Person(" + uneval(this.name) + ")";
};

alert(new Person("Joe").toSource()); // ---> new Person("Joe")

内置的toSource方法

每个核心JavaScript类型都有它自己的toSource方法.这些对象有: {{page("/zh-CN/docs/ToSource")}}

例子

例子: 使用toSource

下面的代码定义了一个Dog对象类型还创建了一个Dog类型的对象实例theDog:

function Dog(name, breed, color, sex) {
   this.name = name;
   this.breed = breed;
   this.color = color;
   this.sex = sex;
}

theDog = new Dog("Gabby", "Lab", "chocolate", "girl");

theDog上调用toSource方法会显示出能定义该对象的源码:

theDog.toSource();

返回

(\{name:"Gabby", breed:"Lab", color:"chocolate", sex:"girl"})

相关链接

修订版来源

<div>
  {{ Non-standard_header() }}</div>
<h2 id="Summary" name="Summary">概述</h2>
<p>返回一个对象源代码的字符串表示.</p>
<table class="standard-table">
  <thead>
    <tr>
      <th class="header" colspan="2">Method of <a href="/zh-CN/docs/JavaScript/Reference/Global_Objects/Object" title="JavaScript/Reference/Global_Objects/Object"><code>Object</code></a></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Implemented in</td>
      <td>JavaScript 1.3</td>
    </tr>
    <tr>
      <td>ECMAScript Edition</td>
      <td>None</td>
    </tr>
  </tbody>
</table>
<h2 id="Syntax" name="Syntax">语法</h2>
<pre class="syntaxbox">
<code><em>obj</em>.toSource()</code></pre>
<h3 id="Parameters" name="Parameters">参数</h3>
<p>无.</p>
<h2 id="Description" name="Description">描述</h2>
<p><code>toSource</code>方法返回下面这样的值:</p>
<ul>
  <li>对于内置的<code>Object</code>对象, <code>toSource</code>返回了下面的字符串:</li>
</ul>
<pre class="eval">
function Object() {
   [native code]
}</pre>
<ul>
  <li>对于<code>Object</code>的实例,<code>toSource会返回该实例</code>源代码的字符串表示.</li>
</ul>
<p>在调试时,你可以通过<code>toSource来查看一个对象的内容</code>.</p>
<p>还可以遮蔽内置的<code>toSource</code>方法.例如:</p>
<pre class="brush:js">
function Person(name) {
    this.name = name;
}

Person.prototype.toSource = function Person_toSource() {
    return "new Person(" + uneval(this.name) + ")";
};

alert(new Person("Joe").toSource()); // ---&gt; new Person("Joe")</pre>
<h3 id="Built-in_toString_methods" name="Built-in_toString_methods">内置<code>的toSource方法</code></h3>
<p>每个核心JavaScript类型都有它自己的<code>toSource</code>方法.这些对象有: {{page("/zh-CN/docs/ToSource")}}</p>
<h2 id="Examples" name="Examples">例子</h2>
<h3 id="Example:_Using_toSource" name="Example:_Using_toSource">例子: 使用<code>toSource</code></h3>
<p>下面的代码定义了一个<code>Dog</code>对象类型还创建了一个<code>Dog类型的对象实例</code><code>theDog</code>:</p>
<pre class="brush:js">
function Dog(name, breed, color, sex) {
   this.name = name;
   this.breed = breed;
   this.color = color;
   this.sex = sex;
}

theDog = new Dog("Gabby", "Lab", "chocolate", "girl");</pre>
<p>在<code>theDog</code>上调用<code>toSource</code>方法会显示出能定义该对象的源码:</p>
<pre class="brush:js">
theDog.toSource();</pre>
<p>返回</p>
<pre class="brush:js">
(\{name:"Gabby", breed:"Lab", color:"chocolate", sex:"girl"})</pre>
<h2 id="See_Also" name="See_Also">相关链接</h2>
<ul>
  <li><a href="/zh-CN/docs/JavaScript/Reference/Global_Objects/Object/toString" title="JavaScript/Reference/Global_Objects/Object/toString">Object.toString</a></li>
</ul>
<p><!-- languages({
"fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Object/toSource",
}) --></p>
恢复到这个版本