不错的JavaScript面向对象的简单入门介绍第1/2页

 更新时间:2008年07月03日 20:50:41   作者:  
JavaScript是一门OOP,而有些人说,JavaScript是基于对象的。
1) 如何创建对象:
1. 使用constructor,例如:
var obj = new Object() // var 可以省略
var obj = new Date() 

2. 使用对象字面值(object literals),例如:

 程序代码

var obj = "123" // 创建一个String对象
var obj = /^abc$/ //创建一个RegExp对象


更加复杂的情况是,我们可以直接生成一个自定义的只有属性的对象:

 程序代码

var obj = {
name:"killercat",
home:"www.i170.com/user/killercat"
}
document.write(obj.name+"<br />")
document.write(obj.home)
结果:
killercat
www.i170.com/user/killercat





2) JavaScript中的属性:
str = "www.i170.com/user/killercat" // str 一个字符串对象的引用
document.write(str.length)
通过对象的引用加上"."再加上属性名,可以访问到这个属性,也可以修改这个属性,甚至是添加一个属性,比如:
var obj = new Object()
obj.name = "killercat"  // 为对象直接添加一个属性
document.write(obj.name) // 访问对象的属性
obj.name = "kcat" // 修改对象的属性
document.write(obj.name)

枚举属性值:
使用 for ... in 语句可以枚举属性(具体来说就是枚举属性名),前面已经提到过,比如
for(ele in window){
    document.write(ele+"<br />")
}
如何得到属性值?
obj = new Object()
obj.p1 = "a"
obj.p2 = "b"
obj.p3 = "c"
for(ele in obj)
    document.write(obj.ele)  // 这是新手可能犯的错误,obj.ele 的值是undefined
应该这样访问属性值:
document.write(eval("obj."+ele))

未定义的属性:
obj = new Object()
document.write(obj.name)
结果是:undefined

删除属性:
obj = new Object()
obj.name = "killercat"
delete obj.name
document.write(obj.name)
结果是:undefined

理解属性:
我们知道在Java,c++中,属性要么属于某个类(类属性或说是静态属性),要么属于对象,也就是说,同一个类的对象,一定有一样的属性,但是JavaScript不一样,同样是Object的对象,却可以有不同的属性。除了这类的属性,JavaScript中还有静态的属性(变量)。

3) Constructor
源于某些未知原因,有些人似乎不愿意在JavaScript提到classes这个词,取代的是"对象的类型(object types)",甚至有些人直接叫函数,于是可以看见这样的说法:“我们通过预先定义好的函数,产生了一个对象”。本文使用类,这个名词。
JavaScript 定义方法的方式和定义类的方式一模一样:
function User(name,sex){ // 定义了类 User
    this.name = name;
    this.sex = sex;
}

user = new User("kc","man")
document.write(user.name+"<br />"+user.sex)

contructor的作用就是在初始化属性(变量)

相关文章

  • JavaScript 设计模式之组合模式解析

    JavaScript 设计模式之组合模式解析

    “组合模式”顾名思意就是将多种实现组合在一起而达到牵一处而动全身的效果。
    2010-04-04
  • CLASS_CONFUSION JS混淆 全源码

    CLASS_CONFUSION JS混淆 全源码

    这里通过JS字符串替换、随机数运算实现混淆JS代码,达到降低代码可读性,以保护代码的目的,需要的朋友可以参考一下
    2007-12-12
  • JavaScript 核心参考教程 内置对象

    JavaScript 核心参考教程 内置对象

    JavaScript 是根据 "ECMAScript"标准制定的网页脚本语言。这个标准由 ECMA 组织发展和维护。ECMA-262 是正式的 JavaScript 标准。
    2009-10-10
  • JavaScript OOP面向对象介绍

    JavaScript OOP面向对象介绍

    JavaScript 是面向对象的编程语言 (OOP)。
    2010-12-12
  • javascript 面向对象编程基础 多态

    javascript 面向对象编程基础 多态

    javascript 面向对象编程基础 多态 的实现方法说明,大家可以看下下面的代码。
    2009-08-08
  • JS类的封装及实现代码

    JS类的封装及实现代码

    js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类.
    2009-12-12
  • JavaScript 原型与继承说明

    JavaScript 原型与继承说明

    在上一遍我们简单的介绍了怎么样使用JavaScript进行构造函数的书写,现在来认识下JavaScript的构造函数其原理,主要是关注与原型的概念,首先看如下代码。
    2010-06-06
  • 关于javascript function对象那些迷惑分析

    关于javascript function对象那些迷惑分析

    关于javascript function对象那些迷惑分析,学习js面向对象的朋友可以参考下。
    2011-10-10
  • 关于JavaScript定义类和对象的几种方式

    关于JavaScript定义类和对象的几种方式

    在说这个话题之前,我想先说几句题外话:最近偶然碰到有朋友问我“hoisting”的问题。即在js里所有变量的声明都是置顶的,而赋值则是在之后发生的。
    2010-11-11
  • JavaScript 继承详解(一)

    JavaScript 继承详解(一)

    几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例。
    2009-07-07

最新评论