使用javascript控制台检查javascript对象

时间:2011-09-12 20:56:07

标签: javascript

例如,使用Google Chrome Developer工具的javascript控制台,可以检查像Math这样的全局对象。

您可以在控制台中简单地编写Math,然后返回。 您将能够访问所有属性,如E,PI和abs,ceil等方法。

String也是像Math这样的全局对象,但是如果你尝试相同的操作,javascript吊牌输出会有所不同,你将无法看到属性和方法。

要查看字符串的属性和方法,您需要制作类似的内容。

var c = new String("asd")

然后检查c objet。

所以我的问题是,你能举例说明一个非常简单的对象,实现为String,然后是Math?

2 个答案:

答案 0 :(得分:1)

在常规OO Math中,它将被视为Static类,只有一个实例。 String将是一个普通的类,您可以在其中创建多个实例。

至于javascript;你可以使用值作为函数创建一个对象:

var Calc = {
 Addition : function(a,b)
 {
   return a+b;
 }
}

您可以调用Calc.Addition(1,2)并返回3。

在另一个示例中,您必须首先实例化对象,您可以使用以下内容:

var Person = function(name)
{
 this.Name = name;

 this.Walk = function()
 {
   console.log(this.Name + "  is walking");
 }
}

var p = new Person("AntonJS");

在您的控制台日志中,您会看到p有一个名为Name的属性,以及一个名为Walk的函数。

答案 1 :(得分:1)

差异是本机类型:

typeof(new String("asd")) // 'object'
typeof("asd") // 'string' 

(new String("asd")).constructor.name // String
"asd".constructor.name // String

String对象的属性和方法由ECMA-262(Javascript标准)的标准实现,并由当前的javascript引擎扩展。你可以在String对象的String.prototype对象定义中看到如上所述。

编辑:现在我更好地抓住你的问题了。 Math是一个抽象对象,“asdf”是字符串的实例。

var MockMath = {
    'sin' : function(){
    }
    ,'cos' : function(){
    }
    /* ... */
};

var MockString = function() {
    /* ... */
};

MockString.prototype = {
    'split'  : function() {
    }
    ,'toLowerCase' : function() {
    }
    ,'toUpperCase' : function() {
    }
};

console.debug(new MockString("asdf"));
console.debug(MockMath);