码迷,mamicode.com
首页 > 其他好文 > 详细

通过工厂模式批量创建对象后调用其中方法 出现XXXis not a function()问题原因

时间:2018-09-24 00:53:33      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:地址   系统   function   对象   代码   问题   OLE   出现   批量   

//通过工厂模式批量创建
function Computer(color,weight,logo){
        var obj=new Object();
        obj.color=color;
        obj.weight=weight;
        obj.logo=logo;
        obj.play=function(){
        console.log(obj.color+obj.weight);
        };
        return obj;            //切记一定要有返回值,返回一个对象
    }
如上,我们已经创建了一个构造函数用于生成我们的对象,我们使用系统提供的构造函数来实例化对象
如果说上述代码没有return obj,或者是没有返回值,那么我们将无法调用我们新建的对象(即使内存中已经开辟了空间供于存储这个对象)
因为(看下面代码),我们实例化得到的computer1并没有接收到obj这个对象的地址,也就无法通过computer1调用obj的属性和方法,加上return obj之后,computer1将会接收到obj栈中存储的对象地址,也就可以调用obj的属性和方法啦
var computer1=new Computer("blue",20,"asus");
computer1.play();
var computer2=new Computer("red",50,"lenovo");
computer2.play();
 .....待完善,错误之处,还请大神指正

通过工厂模式批量创建对象后调用其中方法 出现XXXis not a function()问题原因

标签:地址   系统   function   对象   代码   问题   OLE   出现   批量   

原文地址:https://www.cnblogs.com/Kangchuijing/p/9694026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!