js构造函数

代码片段1

function Foo() {

    var bla = 1;

    return {

        foo:function(){

            return bla;

        }

    }

}


Foo.prototype.test = function() {

    console.log('abc');

};


var test = new Foo();

console.log(test.test)


如此为何不能访问到原型中的方法了,构造函数返回值应当怎么写才能把原型方法返回出来

代码片段2

  function Foo(age) {

        this.age = age;

        var bla = 1;

        return {

            

            foo:function(){

                return bla;

            },

            test:function(){

                Foo.prototype.test.apply(this,arguments);

            }

        }

    }


    Foo.prototype={

        constructor:Foo,

        test:function(){

            console.log(this);//指向object对象,下面有两个函数foo和test

            //console.log(this.age);

        }

    };


    var test = new Foo(23);

    test.test();

    也就是说new出来的对象已经不是指向原来构造函数,而是指向了object











函数式编程
浏览 472回答 1
1回答

偶然的你

兄弟,构造函数不是那样用的function Foo() {      } Foo.prototype.test = function() {    console.log('abc'); };var test = new Foo();console.log(test.test())这样就行了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript