JavaScript基于对象(面向对象)<一>类和对象
javascript中一切皆对象,比如:Array,Date.....这些都是对象。javascript中没有class的定义,function既是定义函数,也可以是定义类。function Obj(){}可以是定义了一个Obj函数,也可以是定义了一个Obj类。 既function obj(){}为最简单的创建类。
一下案例演示的截图来自Nodejs的命令行,不懂Nodejs不影响阅读
JS中构建类的最基本方法:
/*最基本类的定义*/
function person(){
this.age; //定义类属性
};
var p_1 = new person(); //根据已定义类创建对象
p_1.name = "Tom"; //对象动态赋值属性
p_1.age = 18; //属性赋值
/*输出对象属性值*/
console.log("His name is " + p_1.name + " " + p_1.age + " years old this year.");
*****************************************************************************************************************
工厂创建对象:
抽取一类对象共有的属性,方法封装成一个工厂方法(函数)。
工厂就好比一个模具,通过工厂这个模具创建多个对象。
/*创建工厂*/
function createPet(name,color){
var pet = new Object(); //创建对象
pet._name = name; //创建对象属性
pet._color = color;
/*创建对象方法*/
pet.sayHi = function(){
console.log("一只" + pet._color + pet._name + "向你问好!");
}
return pet; //返回一个对象
}
var cat = createPet("猫咪","白色"); //用工厂创建对象
cat.sayHi(); //调用对象方法
var dog = createPet("小狗","黑色");
dog.hobby = "吃骨头"; //创建该对象特有属性
dog.sayHi();
console.log(dog.hobby);
工厂创建对象缺点:
每次创建一个新对象,都需要调用一次工厂方法,有些浪费内存。
*****************************************************************************************************************
原型与原型链:
prototype原型对象(原型类)。原型对象(原型类)prototype可以理解为一个抽象类,是由prototype原型对象(原型类)创建的所有对象的抽象类。
function person(){ this.name = "stu_name"; } //创建person类
person.prototype.profession = "student"; //创建person类原型属性,并赋值
var tea = new person(); //创建对象
tea.name = "teach"; //重新赋值name属性
tea.profession = "teacher"; //重新赋值profession属性
console.log(tea.name + " " + tea.profession); //输出内容
- prototype定义的属性属于原型对象(原型类)。
- prototype属性只能通过原型对象(原型类)修改其值,不可通过原型对象(原型类)创建出来的对象修改prototype属性。
- prototype属性一旦修改则会影响所有通过该原型对象(原型类)创建出来的对象。
JavaScript基于对象(面向对象)<一>类和对象的更多相关文章
- JavaScript、ES6中的类和对象
面向对象可以用于描述现实世界的事物,但是事物分为具体的(特指的)事物和抽象的(泛指的)事物. 面向对象思维的特点: 1.抽取(抽象)对象共有的属性和行为组织(封装)成一个类(模板) 2. ...
- python面向对象(类与对象)
面向对象思想 关注公众号"轻松学编程"了解更多. 1.面向对象的设计思想 面向对象是基于万物皆对象这个哲学观点. 2.面向对象和面向过程的区别 面向过程 在生活中: 它是一种看待问 ...
- oop面向对象【类与对象、封装、构造方法】
今日内容 1.面向对象 2.类与对象 3.三大特征——封装 4.构造方法 教学目标 1.能够理解面向对象的思想 2.能够明确类与对象关系 3.能够掌握类的定义格式 4.能够掌握创建对象格式,并访问类中 ...
- C#面向对象基础 —— 类与对象
文章来源: https://www.cnblogs.com/huluobozu/p/5070500.html 一.类与对象 类是面向对象编程的基本单元:类造出来的变量叫对象. 一个类包含俩种成员:字段 ...
- C#面向对象基础--类与对象
1.类与对象 类是面向对象编程的基本单元:类造出来的变量叫对象. 一个类包含俩种成员:字段与方法. 字段即变量,方法即函数. 面向对象思想:教给我们如何合理的运用类的规则去编写代码. 2.类的字段 字 ...
- 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象
077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...
- day27 Pyhton 面向对象02 类和对象的命名空间
一.内容回顾 类:具有相同属性和方法的一类事务 # 描述一类事务轮廓的一个机制 #商品/用户/店铺 对象/实例: 对象(实例)就是类的实例化 # 对象就是类的一个具体的表现 #某一件特定的商品/某个人 ...
- 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...
- 浅谈JavaScript和DOM中的类数组对象
JavaScript是一门弱类型语言,它的数据类型分为两大类:简单数据类型(5种:Undefined.Null.Boolean.Number.String)和复杂数据类型(1种:Object).Obj ...
随机推荐
- sql中的小细节
1.SUM与COUNT的区别 SUM是对符合条件的记录的数值列求和 COUNT 是对查询中符合条件的结果(或记录)的个数 2 select name as 姓名,tel from...where.. ...
- WPF:获取控件内的子项
一.界面内容(部分:仅供参考) <Window> <Window.Resources> <!--工具数据源--> <XmlDataProvider x:Key ...
- 微信支付 APP 支付方式的服务器端处理程序
对于微信的APP的支付,客户服务说只能通过微信开放平台申请.后来在公众帐号确实发现了证据: 微信支付在申请的时候就比较严(麻烦),对服务类的一些支付,本来商品就是虚拟的,所以需要将商品描述的比较详细 ...
- C++11的一些新特性
3.1.9崭新的Template特性 Variadic Template 可变参数模板 void print() { } template <typename T, typename… Type ...
- iOS开发系列之 itms-services 协议
通过 itms-services 协议,发布或者分享 iOS 应用程序 通过 itms-services 协议,发布或者分享 iOS 应用程序 <button onclick="w ...
- [BIM]BIM中IDM介绍
参考:http://blog.fang.com/25866228/10613454/articledetail.htm IDM的全称是Information Delivery Manual,信息交付手 ...
- MNIST手写数字数据库
手写数字库很容易建立,但是总会很浪费时间.Google实验室的Corinna Cortes和纽约大学柯朗研究所的Yann LeCun建有一个手写数字数据库,训练库有60,000张手写数字图像,测试库有 ...
- poj1811 Prime Test
http://poj.org/problem?id=1811 #include <cstdio> #include <cstring> #include <algorit ...
- javascript + jquery函数大全
JAVASCRIPT Array 函数 array创建数组 concat()连接两个或更多的数组,并返回结果. join()把数组中所有元素组成字符串. pop()删除并返回数组的最后一个元素 s ...
- SQL 数据类型,增删改查语句
数据类型: --类似于C#中的数据类型 Datetime 范围是:1753.1.1-- 9999.12.31 Smalldatetime 1900.1.1 --2079.6.6 操作: ...