Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象编程和对象表示_Javascript_Oop_Methods_Constructor - Fatal编程技术网

Javascript对象编程和对象表示

Javascript对象编程和对象表示,javascript,oop,methods,constructor,Javascript,Oop,Methods,Constructor,场景 当我写下以下代码(演示)时,我正在玩弄一些Javascript对象编程: var o={ "关键":一,, “价值”:1234, toString:function(){ var res=this.key+“;”+this.value; 返回res; } }; var p={ "关键":二,, “价值”:5678 }; 文件。编写(o); 文件。写(“”); 文件编写(p); 如您所见,使用toString()方法可以在不调用toString()方法的情况下显示o对象,而p对象显示为。。

场景

当我写下以下代码(演示)时,我正在玩弄一些Javascript对象编程:

var o={
"关键":一,,
“价值”:1234,
toString:function(){
var res=this.key+“;”+this.value;
返回res;
}
};
var p={
"关键":二,,
“价值”:5678
};
文件。编写(o);
文件。写(“
”); 文件编写(p);
如您所见,使用toString()方法可以在不调用toString()方法的情况下显示
o对象
,而
p对象
显示为。。。作为什么

问题

  • toString
    literal是对象表示的一种默认名称吗?或者别的什么

  • [object object]
    符号是什么意思


  • toString不是一个文本,它是一个函数,是为所有对象定义的。记住函数在javascript中是“第一类”的

    [object object]
    是浏览器对对象的默认toString()的返回值

    以下是Mozilla的优秀文档:

  • 当一个对象被发送到write时,write在内部调用该对象的toString方法,该方法可能(像在o中)被重写,也可能不会(像在p中)被重写

  • 在toString的默认实现中,第一个
    对象
    定义它是一个对象(与数组或原语相反),第二个
    对象
    定义它是object类型的对象。一些没有有意义的字符串表示的内置对象类型(例如DOM节点)返回其类型名而不是对象。当您希望自己的对象在传递给write时输出其类型名时,必须重写toString


  • “[object object]”由默认的
    toString
    方法返回,该方法由
    object
    派生的每个对象继承

    JavaScript中的每个对象都有一个
    toString()
    方法,当对象在字符串上下文中使用时,例如与
    document.write(o)
    一起使用时,以及当您编写
    o+“另一个字符串”
    时,都会隐式调用该方法

    默认情况下,该方法返回
    '[object]'
    ,这不是很有用,但可以重写它以返回任何您喜欢的内容;例如,像
    Numeric
    String
    Date
    这样的对象就是这样做的

    toString文本是对象表示的一种默认名称吗?或者别的什么

    它是对象的
    toString
    属性上的函数

    在Javascript中,当一个对象被强制转换为字符串时(例如,当在字符串连接中使用,或在
    alert()
    document.write()
    )调用
    toString
    方法(通过and)

    通常,您会在自定义对象的原型上指定,并且所有内置类型都有一个(例如,
    Array.prototype.toString
    ,它将值与逗号连接)。您已经在对象文本中显式地设置了它

    [对象]符号是什么意思


    这是对象的默认
    toString
    实现的结果,即对于
    Object
    的所有实例。指定
    Object.prototype.toString
    返回
    [Object
    +class+
    ]
    ,普通对象的内部[[class]]为“Object”

    否,对于参考和关于“第一类”的备注,它与+1看起来没有什么不同!谢谢大家。你给了我推荐信和好评。我很久以前就开始使用Javascript了,在著名的框架让每个人都知道这种脚本语言的威力之前。现在我对ECMA-262的oop功能非常着迷:这是一种古老的优秀Javascript。
        var o = {
            "key":1,
            "value": 1234,
            toString: function(){
                var res = this.key + ";" + this.value;
                return res;
            }
        };
    
        var p = {
            "key":2,
            "value": 5678
        };
    
        document.write(o);
        document.write("</br>");
        document.write(p);