通过工厂模式批量创建对象后调用其中方法 出现XXXis not a function()问题原因
2024-10-20 16:50:23
//通过工厂模式批量创建
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();
.....待完善,错误之处,还请大神指正
最新文章
- ARM-汇编指令集(总结)
- JAVA-系统-【3】-java应用连接oracle正常,但是网页却报错java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
- 【USACO】sprime
- C语言面向对象的简便方法
- Spring MVC返回json数据给Android端
- CMake for MFC example
- 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--控制器和处理函数的注册篇(4/8)【controller+action】
- Axure 第一次接触动态面板
- DJANGO ADMIN 一些有用的设置(转)
- 链接、ip地址及端口号
- php session目录找不到的错误 Error session_start(): open(/var/lib/php/session error
- [LOJ6179]Pyh的求和
- Entity Framework查询生成大量的子查询,如何避免?求救
- SpringBoot Bean作用域
- 学习动态性能表(12)--v$db_object_cache
- THINKPHP 框架的模板技术
- 性能测试--Jmeter录制、回放
- Django+ajax+jsonp实现借口调用文本处理
- 最简大数据Spark-2.1.0
- 数据结构—单链表(类C语言描写叙述)