最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 面向?qū)ο缶幊?萬物皆對象

 更新時間:2009年09月17日 23:22:45   作者:  
javascript幾乎成了如今web開發(fā)人員必學(xué)必會的一門語言,但很多人卻只停在了一些表單驗證等基礎(chǔ)操作層面上,在面向?qū)ο笳Z言大行其道的當(dāng)下,我們需要去學(xué)習(xí)javascript的面向?qū)ο蟮闹R,以便更好的掌握javascript、為深入理解各種腳本框架打好基礎(chǔ)。
javascript和java、C#等語言一樣也具有面向?qū)ο蟮囊恍┨卣?,但?xì)比較的時候,會發(fā)現(xiàn)這些特征并不是真正的面向?qū)ο?,很多地方都是利用對象本身來模擬面向?qū)ο螅哉J(rèn)為javascript不能算是面向?qū)ο缶幊陶Z言,而是基于對象的語言。
在javascript中真的是萬物皆對象,new出來的東西是對象,方法是對象,連類也都是對象。下面分別來看一下對象、方法和類的對象特征。
1.拿內(nèi)置的Date來看一下吧
復(fù)制代碼 代碼如下:

var time = new Date();
var timeString = time.getFullYear() + "-" +
time.getMonth() + "-" +
time.getDate() + " " +
time.getHours() + ":" +
time.getMinutes() + ":" +
time.getSeconds();
document.write(timeString);

通過 time來操作其所引用的Date對象,可以方便的調(diào)用Date的對象所包含的一系列g(shù)etXX()方法來獲取年月日時分秒等信息。
可以再看一下String
復(fù)制代碼 代碼如下:

var username = new String("hello world");
document.write(username.length);

變量username引用了new出來的字符串對象,通過username訪問字符串對象的length屬性。
2.方法也是對象
復(fù)制代碼 代碼如下:

function hello() {
alert("hello");
};
var helloRef = hello;
helloRef();

hello是一個方法,helloRef是一個引用了hello方法的變量,helloRef和hello一樣都指向了相同的方法對象。也就意味著helloRef也可以執(zhí)行,helloRef()。同理也可以寫出以下代碼。
復(fù)制代碼 代碼如下:

var helloRef = function() {
alert("hello");
};
helloRef();

function(){alert(“hello”)}是一個匿名方法,當(dāng)然也是對象,用helloRef變量引用該方法對象后,可以通過helloRef來調(diào)用方法。
3.那么類呢?當(dāng)然類也是對象,在javascript中,不像C#或java那樣有class關(guān)鍵字用來創(chuàng)建類,而是直接使用方法的關(guān)鍵字來創(chuàng)建類或者叫模擬類。
復(fù)制代碼 代碼如下:

function Person(username, age) {
this.Name = username;
this.Age = age;
this.Introduce = function() {
alert("我叫" + this.Name + ",今年" + this.Age + "歲了。");
};
};
var person1 = new Person("張三", 20);
person1.Introduce();

以上創(chuàng)建了一個Person類型,Person帶有構(gòu)造參數(shù)username和age,通過創(chuàng)建的Person對象可以調(diào)用Person所包含的方法Introduce。下面對代碼做一些修改。
復(fù)制代碼 代碼如下:

function Person(username, age) {
this.Name = username;
this.Age = age;
this.Introduce = function() {
alert("我叫" + this.Name + ",今年" + this.Age + "歲了。");
};
};
var PersonClass = Person;
var person1 = new PersonClass("張三", 20);
person1.Introduce();

重新聲明新的變量PersonClass并引用Person類,PersonClass和Person都指向了原來的Person所引用的類,所以也可以用PersonClass來創(chuàng)建對象。
以上的幾個例子可能不是很恰當(dāng),但也可以一窺javascript中萬物皆對象。
下一節(jié)詳細(xì)的談一談javascript中的對象。
  • Javascript面向?qū)ο缶幊蹋ǘ?構(gòu)造函數(shù)的繼承

    Javascript面向?qū)ο缶幊蹋ǘ?構(gòu)造函數(shù)的繼承

    這個系列的第一部分,主要介紹了如何"封裝"數(shù)據(jù)和方法,以及如何從原型對象生成實例。
    2011-08-08
  • Javascript 面向?qū)ο缶幊?coolshell)

    Javascript 面向?qū)ο缶幊?coolshell)

    Javascript是一個類C的語言,他的面向?qū)ο蟮臇|西相對于C++/Java比較奇怪,但是其的確相當(dāng)?shù)膹姶?,?Todd 同學(xué)的“對象的消息模型”一文中我們已經(jīng)可以看到一些端倪了
    2012-03-03
  • javascript 寫類方式之五

    javascript 寫類方式之五

    用 構(gòu)造函數(shù)+原型 定義一個類;同一構(gòu)造函數(shù)可以定義出多個類型
    2009-07-07
  • JavaScript 對象的屬性和方法4種不同的類型

    JavaScript 對象的屬性和方法4種不同的類型

    JavaScript里,對象的屬性和方法支持4種不同的類型,需要的朋友可以參考下。
    2010-03-03
  • javascript 混合的構(gòu)造函數(shù)和原型方式,動態(tài)原型方式

    javascript 混合的構(gòu)造函數(shù)和原型方式,動態(tài)原型方式

    JS編程中最常用兩種對象類定義的方式。不管是利用下面2種方式的那一種,都可以達(dá)到相同的效果!
    2009-12-12
  • javascript Base類 包含基本的方法

    javascript Base類 包含基本的方法

    一個Base類,包含基本的方法,大家可以在這個基礎(chǔ)上拓展下功能。
    2009-07-07
  • JavaScript面向?qū)ο笾甈rototypes和繼承

    JavaScript面向?qū)ο笾甈rototypes和繼承

    本文翻譯自微軟的牛人Scott Allen Prototypes and Inheritance in JavaScript ,本文對到底什么是Prototype和為什么通過Prototype能實現(xiàn)繼承做了詳細(xì)的分析和闡述,是理解JS OO 的佳作之一
    2012-07-07
  • 一實用的實現(xiàn)table排序的Javascript類庫

    一實用的實現(xiàn)table排序的Javascript類庫

    一實用的實現(xiàn)table排序的Javascript類庫...
    2007-09-09
  • JavaScript 繼承詳解(一)

    JavaScript 繼承詳解(一)

    幾乎每個開發(fā)人員都有面向?qū)ο笳Z言(比如C++、C#、Java)的開發(fā)經(jīng)驗。 在傳統(tǒng)面向?qū)ο蟮恼Z言中,有兩個非常重要的概念 - 類和實例。
    2009-07-07
  • 最新評論

    苍南县| 晋宁县| 玉龙| 克什克腾旗| 丽水市| 连云港市| 桃江县| 绥化市| 扎鲁特旗| 漳州市| 陈巴尔虎旗| 文安县| 白银市| 锡林郭勒盟| 金寨县| 伊宁市| 靖西县| 六枝特区| 象山县| 宜黄县| 淅川县| 鹿邑县| 屏东市| 澄江县| 赤壁市| 集安市| 名山县| 岳西县| 乾安县| 新宁县| 镇远县| 西盟| 都匀市| 西藏| 洛隆县| 贵阳市| 田林县| 清远市| 朔州市| 申扎县| 简阳市|