MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

Object.prototype.toSource()

非标准
该特性是非标准的,请尽量不要在生产环境中使用它!

toSource() 方法返回一个表示对象源代码的字符串.

语法

Object.toSource(); obj.toSource()

返回值

一个表示对象的源代码的字符串。

描述

toSource()方法返回以下值:

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

在调试时,你可以通过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()方法.这些对象是:

例子

例子: 使用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();
// Uncaught TypeError: theDog.toSource is not a function

返回

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

相关链接

文档标签和贡献者

 此页面的贡献者: xgqfrms-GitHub, keller0, teoli, ziyunfei
 最后编辑者: xgqfrms-GitHub,