//创建一个猫类
function Cat(name,color,eyeColor){
//上面处Cat首字母大写表示创建一个‘类别’叫Cat类。假如首字母小写cat则是创建一个cat的函数;

this.catName=name;
this.catColor=color;
this.catEyeColor=eyeColor;

}

var xiaohua=new Cat("小花","花色","金黄色");
var xiaohei=new Cat("小黑","黑色","蓝色");
var xiaobai=new Cat("小白","白色","绿色");

alert(xiaobai.catEyeColor);        //得:绿色

对象:

  猫是一个对象,狗是一个对象,那么你家猫叫小花,我家猫叫小白,那么小花和小白就是猫的两个实例。

  每个对象都有属性,而一个对象的属性名肯定都一样

比如,猫对象,它的属性就有,猫的名字、毛色、眼睛颜色、猫的种类等等;(如上面例子:name,color,eyeColor)

  这个猫对象是对所有猫来说都有这些个属性,但是具体这些属性什么值我们是通过实例来赋予的(例如:"小花","花色","金黄色")

 

  所以就有function(name,color)

        {this.catName=name;
        this.catColor=color;};

 

  然后就是通过对象创建一个实例,实例是对象的具体表现。比如小花||花色||金黄色都是一个猫的具体表现。

this:function(name,color),这个括号里面的name和color是外边传递过来的参数

    但是function Cat(name,color){}

    这个name和color,这会儿就不是这个Cat对象的属性,而只是一个参数。

     那么我们就在这个函数的{}内部通过this获取Cat对象本身 ,给Cat对象指定一个name属性,那么就是说,在Cat对象里面写this.catName;就等于 Cat.name
 
 
 

new:

     new就是创建实例的意思
     var xiaohua=new Cat("小花","花色","金黄色");这句话就是创建一个叫 “xiaohua” 的 “Cat”对象的“ 实例” 
    因为我们一般创建都是 var xiaohua=new Cat("小花","花色","金黄色"); 所以这就是说,给 “Cat”对象中的属性赋值,而括号中双引号中的内容("小花","花色","金黄色")就是要赋值进去给“Cat的内容
    这时候, “Cat‘这个对象的各个属性就有了值,而不只是一个属性名。
     而这时候我们又通过等号将这个有了属性的“Cat‘赋值给“xiaohua”,那么这个“Cat‘的属性就成为了“xiaohua”的属性
     所以说有属性值得“xiaohua”就是“Cat‘对象的实例
 
 

关于对象和this、new的更多相关文章

  1. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

  2. javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

    Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...

  3. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  4. Asp.Net WebApi核心对象解析(下篇)

    在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...

  5. JS核心系列:浅谈原型对象和原型链

    在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对 ...

  6. Chrome出了个小bug:论如何在Chrome下劫持原生只读对象

    Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...

  7. XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法

            在前几天的一个项目中,由于数据库字段的命名原因 其中有两项:一项叫做"市场价格"一项叫做"商店价格" 为了便于区分,遂分别将其命名为market ...

  8. ASP.NET内置对象的总结

    1. Response对象可形象的称之为响应对象,用于将数据从服务器发送回浏览器. 实例源码:链接: http://pan.baidu.com/s/1dDCKQ8x 密码: ihq0  2. Requ ...

  9. ADO.NET对象的详解

    1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...

  10. 对Castle Windsor的Resolve方法的解析时new对象的探讨

    依赖注入框架Castle Windsor从容器里解析一个实例时(也就是调用Resolve方法),是通过调用待解析对象的构造函数new一个对象并返回,那么问题是:它是调用哪个构造函数呢? 无参的构造函数 ...

随机推荐

  1. 收藏的技术文章链接(ubuntu,python,android等)

    我的收藏 他山之石,可以攻玉 转载请注明出处:https://ahangchen.gitbooks.io/windy-afternoon/content/ 开发过程中收藏在Chrome书签栏里的技术文 ...

  2. Eclipse下如何打开ftl文件

    ftl文件是freemarker模板文件,用freemarker时,常用该文件模板:但是该文件在eclipse编辑时,黑白底的,没有任何提示,下面介绍如何用JSP编辑器打开该文件. 工具/原料   e ...

  3. Qt信号槽机制的实现(面试的感悟,猜测每一个类保存的一个信号和槽的二维表,实际使用函数指针 元对象 还有类型安全的检查设定等等)

    因为面试时问了我这道题,导致我想去了解信号槽到底是如何实现的,于是贴着顺序看了下源码,大致了解了整个框架.网上关于信号槽的文章也很多,但是大部分都是将如何应用的,这里我就写一下我所理解的如何实现吧, ...

  4. [LeetCode][Python]Add Two Numbers

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/add-two ...

  5. paip.提升用户体验---论文本编辑器的色彩方案

    paip.提升用户体验---论文本编辑器的色彩方案 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.ne ...

  6. [笔记]线性回归&梯度下降

    一.总述 线性回归算法属于监督学习的一种,主要用于模型为连续函数的数值预测. 过程总得来说就是初步建模后,通过训练集合确定模型参数,得到最终预测函数,此时输入自变量即可得到预测值. 二.基本过程 1. ...

  7. C++ 清空消息队列

    在button等被禁用后,可能须要它在禁用期间不去响应不论什么消息. 能够使用以下的语句片段: MSG msg; //消耗掉消息队列中的全部消息 while(::PeekMessage(&ms ...

  8. Python文件或目录操作的常用函数

    ◆ os.listdir(path) Return a list containing the names of the entries in the directory given by path. ...

  9. Dictionary<string, string> 排序

    .net framework 2.0 版 Dictionary<string, string> collection = new Dictionary<string, string& ...

  10. oracle默认的hr用户使用脚本安装

    1 解压到%ORACLE_HOME%/demo/schema/human_resources/目录下 2 在sys或system用户下运行hr_main.sql脚本(运行命令:@%ORACLE_HOM ...