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. Python学习笔记(十五)用Python获取本地数据

    f1 = open(r'E:\Python\Data\data1.txt') #读取data1.txt文件,使用系统默认缓冲区大小, 为了读取快点,使用缓存吧! f = open(r'E:\Pytho ...

  2. PHP扩展--opcache安装及配置

    简介 Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP L ...

  3. JAVA多线程提高四:多个线程之间共享数据的方式

    多个线程访问共享对象和数据的方式 如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. 如果每个线程执行的代码不同,这 ...

  4. java中error和exception

    异常是指程序运行时发生的错误. Throwable是所有异常的父类,它有两个子类:Error和Exception. 1.Error表示程序在运行期间发生了非常严重的错误,并且该错误是不可恢复的.Err ...

  5. 【CodeForces】901 B. GCD of Polynomials

    [题目]B. GCD of Polynomials [题意]给定n,要求两个最高次项不超过n的多项式(第一个>第二个),使得到它们GCD的辗转次数为n.n<=150. [算法]构造 [题解 ...

  6. easyUI导出数据

    easyUI导出数据模式 后台: //导出数据 public function index_doExport() { $search['diqu']=$_POST['diqu']; $search[' ...

  7. 【洛谷 P2900】 [USACO08MAR]土地征用Land Acquisition(斜率优化,单调栈)

    题目链接 双倍经验 设\(H\)表示长,\(W\)表示宽. 若\(H_i<H_j\)且\(W_i<W_j\),显然\(i\)对答案没有贡献. 于是把所有点按\(H\)排序,然后依次加入一个 ...

  8. __inet_insert_ifa/__inet_del_ifa

    /* 添加ip地址 主地址添加到最后一个满足范围的主地址后面 从地址添加到整个列表后面 若列表中存在与插入地址在同一子网的地址,则 要求ip地址不同且范围相同,并且插入地址认为是从地址 */ stat ...

  9. python3.x的HTMLTestRunner.py文件

    """A TestRunner for use with the Python unit testing framework. Itgenerates a HTML re ...

  10. Mysql授权允许远程访问

    MySQL Community Edition(GPL) 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库.缺省状态下,mysql的用户是没有远程访问的权 ...