JavaScript 使用函数来定义类。
语法:
function className(){
    // 具体操作
}

function Person() {
this.name=" 张三 "; // 定义一个属性 name
this.sex=" 男 "; // 定义一个属性 sex
this.say=function(){ // 定义一个方法 say()
document.write("嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + "。");
}
}

在JavaScript中,创建对象(即类的实例化)使用 new 关键字。

this 关键字是指当前的对象。

在JavaScript中,可以使用“ . ”和“ [ ] ”来访问对象的属性。只能使用“ . ”来访问对象的方法。

function Person() {
this.name=" 张三 "; // 定义一个属性 name
this.sex=" 男 "; // 定义一个属性 sex
this.age=22; // 定义一个属性 age
this.say=function(){ // 定义一个方法 say()
return "嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + ",今年 " + this.age +"岁!";
}
}
var zhangsan=new Person();
alert("姓名:"+zhangsan.name); // 使用“.”来访问对象属性
alert("性别:"+zhangsan.sex);
alert("年龄:"+zhangsan["age"]); // 使用“[ ]”来访问对象属性
alert(zhangsan.say);   // 使用“.”来访问对象方法

动态添加属性和方法

// 定义类
function Person(name,sex) {
this.name=name; // 定义一个属性 name
this.sex=sex; // 定义一个属性 sex
this.say=function(){ // 定义一个方法 say()
return "嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + " 。";
}
} // 创建对象
var zhangsan=new Person("张三","男");
zhangsan.say(); // 动态添加属性和方法
zhangsan.tel="029-81892332";
zhangsan.run=function(){
return " 我跑得很快! ";
} // 弹出警告框
alert("姓名:"+zhangsan.name);
alert("姓别:"+zhangsan.sex);
alert(zhangsan.say());
alert("电话:"+zhangsan.tel);
alert(zhangsan.run());

对象字面量是一个 名/值 对列表,每个 名/值 对之间用逗号分隔,最后用一个大括号括起来。名/值对 表示对象的一个属性或方法,名和值之间用冒号分隔。

var  myCar={
"price" : "$10,000" , // 属性
"color" : "red" , // 属性
"run" : function(){ return " 120 km/h "; } // 方法
}
var myHome={
population : "10,000" ,
area : "10,000" ,
adress : { // 属性
country : "China" ,
province : "shanxi" ,
city : "xian"
},
say : function(){ // 方法
return "My hometown is very beautiful ! ";
}
}

使用对象字面量可以创建单个对象,语义直观。

对象字面量可以嵌套。

JavaScript 使用 for in 语句来遍历对象的属性和方法。for in 语句循环遍历 JavaScript 对象,每循环一次,都会取得对象的一个属性或方法。

语法:
for(valueName  in  ObjectName){
    // 代码
}
其中,valueName 是变量名,保存着属性或方法的名称,每次循环,valueName 的值都会改变。 类似于php中的foreach($array as $key=>$val)

var zhangsan={}
zhangsan.name = "张三";
zhangsan.sex = "男";
zhangsan.say = function(){
return "嗨!大家好,我来了。";
}
zhangsan.contact = {
tel : "029-81895644",
qq : "1370753465",
email : "itxueyuan@gmail.com"
}
var strTem=""; // 临时变量
for(value in zhangsan){
   strTem+=value+':'+zhangsan[value]+"\n";
}
alert(strTem);
function charNum(str){
    var charObj={}
    for(i=0,len=str.length;i<len;i++){
        if(charObj[str[i]]){
            charObj[str[i]]++;
        }else{
            charObj[str[i]]=1;
        }
    }
    var strTem="";  // 临时变量
    for(value in charObj){
        strTem+='"'+value+'"的个数:'+charObj[value]+'\n';
    }
    return strTem;
}
charNum("http://www.itxueyuan.org");
charNum("134775444637722991919");

javascript面向对象思想的更多相关文章

  1. javascript面向对象思想2

    上篇说到面向对象可以帮我们梳理页面的逻辑的文章(http://www.cnblogs.com/hetaojs/p/6024013.html),很多朋友看了说我这种写法是初级的面向对象小儿科,确实是初级 ...

  2. JavaScript 面向对象思想 贪吃蛇游戏

    js代码: 游戏的对象 ,食物,蛇 ,游戏控制思路如下 (完整代码在https://github.com/774044859yf/ObjectSnakeGame下载) var snake = { aS ...

  3. 聚焦JavaScript面向对象的思想

    面向对象是一种软件开发方法,是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物.随着时代的发展,计算机被用于解决越来越复杂的问题.一切事物皆对象,通过面向对象的方式,将现实世界的 ...

  4. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...

  5. 【转】javascript面向对象编程

    摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...

  6. Javascript面向对象编程

    https://segmentfault.com/a/1190000002900676 介绍 和java这种基于类(class-base)的面向对象的编程语言不同,javascript没有类这样的概念 ...

  7. 深入理解Javascript面向对象编程

    深入理解Javascript面向对象编程 阅读目录 一:理解构造函数原型(prototype)机制 二:理解原型域链的概念 三:理解原型继承机制 四:理解使用类继承(继承的更好的方案) 五:建议使用封 ...

  8. 使用面向对象思想处理cookie

    实例:使用面向对象思想处理cookie如果读者对cookie 不熟悉,可以在第七章学习它的使用方法,虽然在那里创建了几个通用函数用于cookie 的处理,但这些函数彼此分离,没有体现出是一个整体.联想 ...

  9. javascript面向对象分层思维

    js本身不是面向对象语言,在我们实际开发中其实很少用到面向对象思想,以前一直以为当要复用的时候才封装成对象,然而随着现在做的项目都后期测试阶段发现面向对象的作用不仅仅只是复用,可能你们会说面向对象还有 ...

随机推荐

  1. .NET Core get started on Ubuntu 14.04

    昨天.NET Core 1.0 正式发布了,所以尝尝鲜. 根据官方介绍页面的步骤: 步骤1. sudo sh -c 'echo "deb [arch=amd64] https://apt-m ...

  2. jquery实现简单轮播

    先上简单的html代码 <!DOCTYPE HTML> <html> <head> <link rel="stylesheet" type ...

  3. Django之组合搜索组件(一)

    什么是组合搜索呢? 比如你想买车,但手里只有10万块!所以你只能在10万块的车里挑选,但你喜欢黑色,因为觉得很高端大气上档次,说白了就是装逼杠杠的!之后售车姐给你拿了个表表,你看到了低于10万块且颜色 ...

  4. koa源码阅读[3]-koa-send与它的衍生(static)

    koa源码阅读的第四篇,涉及到向接口请求方提供文件数据. 第一篇:koa源码阅读-0第二篇:koa源码阅读-1-koa与koa-compose第三篇:koa源码阅读-2-koa-router 处理静态 ...

  5. Tensorflow中使用TFRecords高效读取数据--结合Attention-over-Attention Neural Network for Reading Comprehension

    原文链接:https://arxiv.org/pdf/1607.04423.pdf 本片论文主要讲了Attention Model在完形填空类的阅读理解上的应用. 转载:https://blog.cs ...

  6. Linux SCIM/fcitx/ibus 输入法

    现在很多发行版linux一般都是装好scim scim-tables-zh 重启就行 但有时重启后还是不能调用 可以用如下方法: 添加文件: sudo gedit /etc/X11/xinit/xin ...

  7. webgote的例子(6)SQL注入(盲注)

    SQL Injection - Blind (WS/SOAP) 本期演示的是盲注的手法.有些网站在与数据库交互的地方进行了很好的修饰,将报错的语句进行修改,即使你找到了注入点也无法下手拿数据,这个时候 ...

  8. adb_usb.ini在adb找不到设备时

    不能连接不上adb,如下方法解决,步骤描述不愿意看的话,直接使用本文最下面的批处理命令,方法copy粘贴到新建的bat文件里运行,或者直接粘贴到dos窗口运行. 1. 使用androidsdk目录中的 ...

  9. svn add --no-ignore

    提交新代码时:svn add --no-ignore  /dir   不加的话可能会漏提交某些依赖或文件. Svn st -q --no-ignore. 提交时不需要加

  10. MGR Switch Muti-Primary to single_primary

    MGR Muti-Primary 切换 single_primary 模式 原因:因为希望做ProxySQL+MGR之间Proxy层的消耗测试,需要把原有的MGR多主改为单主模式. 修改MGRgrou ...