鍍金池/ 問答/網絡安全  HTML/ js 給構造函數添加屬性

js 給構造函數添加屬性

    var Foo = function(){
        this.age = 18;
        this.**getName** = function () {
            console.log('2');
        }
    }
    Foo.**getName** = function () {
        console.log('2');
    }
    

請問一下,這兩個getName屬性有什么區(qū)別嗎?

回答
編輯回答
拼未來

一個屬于Foo對象,一個屬于對象實例;

2018年1月17日 12:47
編輯回答
忘了我

一個是原型的屬性,一個是實例對象的屬性

2017年3月20日 04:48
編輯回答
巴扎嘿

構造函數里面的屬性是添加到實例上面的;Foo.getNameFoo這個對象的屬性。
例如:var foo = new Foo(),此時foo這個實例的getName是構造函數中添加的實例屬性,而Foo.getNameFoo對象的屬性

2017年7月11日 11:37
編輯回答
愛是癌

第一個是加在實例上,屬于實例屬性。
第二個是把構造器當做函數用的,getName直接加在構造器上。

可以測試一下

var t = new Foo()
t.getName()   
t.constructor.getName()

觀察兩者的結果,相信你就能明白

2018年9月23日 20:15