第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

2 個對象(通過字符串的 new 關(guān)鍵字創(chuàng)建)不提供 [Object][Object]

2 個對象(通過字符串的 new 關(guān)鍵字創(chuàng)建)不提供 [Object][Object]

萬千封印 2023-02-17 16:03:21
這個問題是基于上一個問題:這兩個字符串的區(qū)別(JavaScript)人們回答說,通過兩種不同的方式創(chuàng)建字符串是有區(qū)別的:字符串文字創(chuàng)建字符串 ( var a = "abc")new關(guān)鍵字創(chuàng)建字符串對象,我假設它是一種對象 ( var b = new String("def"))現(xiàn)在,typeof在第一種情況下將返回string。在第二種情況下,它將返回Object。我很好,開發(fā)它的人可能有某種 JS 引擎的工作方式。但是,那么,在下面的示例中,為什么我在最后一行得到的答案到底是abcdef. 現(xiàn)在,這也應該[object][object]像上面那行一樣得到安慰?,F(xiàn)在我真的很困惑,new String是創(chuàng)建一個字符串,還是對象還是什么?它只是不一致!有人可以幫我解釋一下嗎?var obj1 = new Object({name: "Peter"});var obj2 = new Object({age: 29});var str1 = new String("abc");var str2 = new String("def");console.log(obj1);console.log(obj2);console.log(str1);console.log(str2);console.log(obj1 + obj2);console.log(str1 + str2); 
查看完整描述

2 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

new String創(chuàng)建一個String對象,它繼承自Object,但有自己的.toString和.valueOf方法,因此它將打印字符串內(nèi)容。


var o = new Object();

var s = new String("foo");


console.log(o.toString === s.toString); // false

console.log(o.valueOf === s.valueOf);   // false


您可以用自己的代碼覆蓋它們以查看它們是否被調(diào)用。請務必也調(diào)用原件。


var s = new String("foo");


s.valueOf = function() {

    console.log("custom valueOf");

    return String.prototype.valueOf.call(this);

}

s.toString = function() {

    console.log("custom toString");

    return String.prototype.toString.call(this);

}


console.log(s + s);

[""].join(s);


查看完整回答
反對 回復 2023-02-17
?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

但是,在下面的例子中,為什么我在最后一行得到的答案是 abcdef?,F(xiàn)在,這也應該像上面的行一樣安慰 [object][object]。


不同之處在于String對象有一個默認valueOf方法,該方法返回對象中包含的字符串值。


該Object對象有一個更通用的valueOf方法,它只返回一個字符串[object Object]


看 -


const one =

  { valueOf: _ => 1 }

  

const two =

  { valueOf: _ => 2 }

  

console.log(one + two)

// 3


您可以定義valueOf為任何東西 -


const foo =

  { valueOf: _ => "foo" }

  

const bar =

  { valueOf: _ => "bar" }

  

console.log(foo + bar)

// "foobar"


查看完整回答
反對 回復 2023-02-17
  • 2 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號