JavaScript--面向对象基础

一、数组与对象之间的比较

想要快速入门JavaScript的面向对象部分,需要把对象跟数组比较。

数组是键值对,对象也是键值对。【注意,JavaScript将函数也看作一种数据】
其次,数组用中括号初始化,对象用大括号初始化。

//定义一个数组,数组中也可以有函数
var array1 = [1,"s",3.1,function(){}];
//定义一个对象
var student = {
        name:"wang",
        gender:"male",
        talk:function(){
        //say Something
        }
};

上面定义了一个student对象,有两个属性和一个方法。键和值之间用冒号隔开。
注意,键值可用引号,当键名是保留字、包含空格或者特殊字符或者以数字开头的时候必须要有引号。
注意,对象中可以有任何数据类型,当然包括对象。

二、访问对象的属性

  1. 中括号法:
    如访问上面student的name属性
var myname=student[name]
  1. 点号访问法:
var myname=student.name

访问的属性不存在,会返回undefined

访问方法的方法同上,但是括号访问法不常用。

student.say();
student['say']();

三、对属性和方法的动态更改

作为一门动态语言,JavaScript允许对现存的对象修改其属性和方法。
增加与修改:

//修改student的name属性
student.name="Li";
//增加一个学号no属性
student.no='20131120220';

删除

//删除gender属性
delete student.gender;

this与构造器函数用法同Java

function student(Name,Gender)
{this.name=Name;
this.gender=Gender;
this.sayHi=function(){
alert("Hi " + this.name);}
}
//记住js是弱类型 所以下面是var不是 
var s1=new student("Li","male");
s1.sayHi();

四、构造器属性constructor

我们在创建对象时,同时也赋予了对象构造器属性constructor。
例如上面的student:

>>>student.constructor
student(Name,Gender)
//没有构造器函数的,返回内建构造器Object()
>>>var a={}
>>>a.constructor
Object()
//instanceof操作符可以测试一个对象是否由某个指定的构造器函数创建。
>>>var s2=new student("Guo","female");
>>>s2 instanceof student;
true
>>>a instanceof Object
true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值