javascript如何分装数据和方法

本文探讨了在JavaScript中如何封装数据和方法,包括原始模式、构造函数模式及其问题,以及Prototype模式。通过实例展示了如何创建对象实例,如何避免内存浪费,并通过prototype属性提高效率。
摘要由CSDN通过智能技术生成

Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象。但是,他又不是一种真正的面向对象编程的语言,因为他的语法中没有class类。

那么,如果我们要把“属性”(property)和“方法”(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?

一、生成实例对象的原始模式
假定我们把猫看成一个对象,他有“名字”和“颜色”两个属性。

var cat = {
	name: '',
	color: ''
}

现在,我们需要根据这个原型对象的规格,生成两个实例对象。

var cat1 = {};
cat1.name = "大毛";
cat1.color = "黄色";
var cat2 = {};
cat2.name = "二毛";
cat2.color = "黑色";

好了,这就是最简单的封装了,把两个属性封装在一个对象里面。但是这样的写法有两个缺点,一是如果多生成几个实例,写起来就非常麻烦;二是实例与原型之间,没有任何办法可以看出有什么联系。

二、原始模式的改进
我们可以写一个函数,解决代码重复的问题。

function cat(name, color) {
	return {
		name: name,
		color: color
	}
}

然后生成实例对象,就等于是在调用函数:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值