开发者社区> 问答> 正文

构造函数的原型对象的属性中的方法的this如何在定义时指定为构造函数的实例对象?

var App = function(){

this.data = [1,2,3]

}

App.prototype._method = (function(){

return {
    getData: function(){
        return this.data;
    },
    setData: function(val){
        this.data.push(val)
    }

}

})();
我想问一下,对于_method属性下的方法如何指定this为App的实例对象?

var app = new App();
app._method.getData.call(app);
以上是一种方法。

我想问的是:如何实现
app._method.getData(); // 直接调用,不需要写call。最好在定义这些方法时实现,不要在定义完后,再通过bind()方法实现。(当然,也不要将_method内的各个方法直接挂载在prototype)

展开
收起
a123456678 2016-03-13 10:19:35 1902 0
1 条回答
写回答
取消 提交回答
  • var App = function(){
        function _App_(){
            this.data = [1,2,3];
        }
        var tAPP=new _App_();
        function App1(){
        }
        App1.prototype= tAPP;
        App1.prototype._method=(function(){
            var self=tAPP;
            return {
                getData: function(){
                    return self.data;
                },
                setData: function(val){
                    self.data.push(val)
                }
            
            }
        })();
        
        return new App1();
    }
    2019-07-17 19:01:59
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载