回覆列表
  • 1 # 你看我獨角獸嗎

    為什麼我總喜歡回答這種冷門話題。。先回答題主的疑惑,我們先了解下JavaScript prototype的定義和用法,prototype的定義是使您有能力向物件新增屬性和方法。簡單的語法為

    object.prototype.name=value

    那麼a是一個TestClass物件例項,那麼根據上面應該很容易回答了,a是物件例項,不是物件,prototype不會給物件例項提供新增屬性和方法的能力。

    那麼我們來看下Object在JavaScript中的使用吧,雖然一般而言平時會用Object去儲存資料,不會用什麼功能,不過Object實際上還是比較強大的,尤其在ES5之後。

    建立物件

    new建構函式法

    這不用解釋了吧,加上new關鍵字和Object建構函式,新增屬性後我們就可以儲存資料。

    物件字面量

    這個也很好理解,使用字典方式直接建立物件,很簡單。不過有點要注意的是,如果是最後一個屬性,最好不要加逗號,畢竟有些瀏覽器下會報錯。

    常用的物件例項的屬性和方法

    toString()方法

    toString用來返回物件的字串表示。

    valueOf()方法

    valueOf方法返回物件的原始值,可能是字串、數值等。

    constructor屬性

    constructor屬性是儲存當前物件的建構函式。

    hasOwnProperty(propertyName)方法

    hasOwnProperty方法接收一個字串引數,該引數表示屬性名稱,用來判斷該屬性是否在當前物件例項中。

    以上還有很多其他的方法和屬性未提及到,我平常開發中Object也是最經常使用的物件,現在從ES5的發展來看,Object的功能已經強大了很多,我看網上的教程也挺複雜,這主要是因為js本身沒有完整的面向物件和自定義型別支援有關係,雖然ES6已經很盡力了。

  • 2 # 偶爾來逛逛隨便來瞧瞧

    如果你對面向物件有概念,那你應該知道js中一切皆是object,js中的物件都由object派生,換言之,無論number,string還是函式,都是具體型別的object

  • 3 # 紅塵匆匆過客夢

    javascript物件包括:字串、數值、陣列、函式...等等,javascript內建物件Object是派生所有其它物件的物件(透過prototype原型鏈),其屬性和方法可以派生給所有其它物件,包括屬性constructor(建構函式)和prototype(指向共享的原型物件),方法toString(把物件轉換為字串)和valueOf(獲得物件的原始值)

  • 中秋節和大豐收的關聯?
  • 為什麼古體詩裡不包括詞?