中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

JavaScript可以創(chuàng)建對象嗎

這篇“JavaScript可以創(chuàng)建對象嗎”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“JavaScript可以創(chuàng)建對象嗎”文章吧。

目前成都創(chuàng)新互聯(lián)公司已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設(shè)計、南豐網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

JavaScript可以創(chuàng)建對象。創(chuàng)建方法:1、用Object直接創(chuàng)建對象,語法“new Object()”;2、用new關(guān)鍵字創(chuàng)建對象,語法“new 對象名()”;3、用JSON創(chuàng)建對象,語法“object={屬性名:屬性值,...}”。

本教程操作環(huán)境:windows10系統(tǒng)、javascript1.8.5版、Dell G3電腦。

JavaScript無法創(chuàng)建對象嗎

一個JavaScript對象是一個可以保存許多不同值的變量。它充當一組相關(guān)數(shù)值的容器。例如,網(wǎng)站的用戶、銀行賬戶中的賬單都可以是JavaScript對象。

在JavaScript中,對象包含了兩種值:屬性和方法。

當你創(chuàng)建一個JavaScript對象時,需要定義它的名字,屬性和方法。

創(chuàng)建一個JavaScript對象的方法:

1、利用Object直接創(chuàng)建對象

var myObj=new Object();//使用Object類創(chuàng)建一個空的對象
 
myObj.name="wangshihcheng";
 
myObj.age=20;
 
myObj.infor=function(){
 
document.write("名字:"+this.name);//this.的指向問題
 
document.write("年齡:"+this.age);
 
}
 
myObj.infor();//調(diào)用創(chuàng)建的對象里面的方法;

2、利用new關(guān)鍵字調(diào)用構(gòu)造器創(chuàng)建對象

代碼如下:

<script>
    var obj = new Object();
    obj.name = "Kitty";//為對象增加屬性
    obj.age = 21;
    obj.showName = function () {//為對象添加方法
        console.log(this.name);
    };
    obj.showAge = function(){
        console.log(this.age);
    };
    obj.showName();
    obj.showAge();
</script>

這種方法通過new關(guān)鍵字生成一個對象,然后根據(jù)JavaScript是動態(tài)語言的特性來添加屬性和方法,構(gòu)造一個對象。其中的this表示調(diào)用該方法的對象。

這種方法的問題在于:如果我們需要多次創(chuàng)建對象,那么就需要重復代碼多次,不利于代碼的復用。

3、利用原型模式創(chuàng)建對象

在JavaScript中,每個函數(shù)都有一個prototype屬性,它是一個指針,指向一個對象,叫做

原型對象,原型對象包含了可以由特定類型的所有實例對象共享的屬性和方法;

另外,這個對象有一個自帶的屬性constructor,指向創(chuàng)建對象的構(gòu)造方法;

當我們使用原型模式時可以使所有的實例共享原型對象的屬性和方法,

從而我們不必要早構(gòu)造函數(shù)中定義對象的實例的信息;

function Student(){
        
 
}
Student.prototype.name="wang";
Student.prototype.sex="man";
Student.prototype.class="5";
Student.prototype.sayName=function(){
    console.log(this.name);
}
 
var s1=new Student();
s1.sayName();//wang
 
var s2=new Student();
s2.sayName();//wang
 
s2.name="shicheng";
s2.sayName();//shicheng

當我們讀取某個對象的屬性時,都會執(zhí)行一次搜索,搜索首先從對象實例本身開始,

如果在實例中找到了這個屬性,則搜索結(jié)束,返回屬性的值;

若實例上沒有找到,則繼續(xù)向?qū)ο蟮脑蛯ο笊厦嫜由?,搜索對象的原型對象,若在原型上?/p>

找到這個屬性,則返回原型上面屬性對應的值,若沒有找到,則返回undefine;

因此,可以看出,實例對象屬性會覆蓋原型對象上面的屬性;

4、利用JSON創(chuàng)建對象

//object={屬性名1:屬性值1,屬性名2:屬性值2,.....}

//注意JOSN格式中屬性名要加雙引號;

var p={
 
"name":"wangsch",
 
"gender":"man",
 
"age":40,
 
"son":[
 
    {
 
        "name":"son1",
 
        "age":2
 
    },
 
    {
 
    "name":"son2",
 
    "age":5
 
    }
 
],
 
"infor":function(){
 
document.write("父親的姓名:"+this.name+",父親的年齡:"+this.age+"<br>");
 
for( var child in this.son ){
 
document.write("兒子的姓名:"+this.son[child].name+",兒子的年齡:"+this.son[child].age+"<br>");
 
                }
 
        }
 
}
 
p.infor();//調(diào)用對象p中的infor方法

5、組合利用構(gòu)造函數(shù)和原型模式創(chuàng)建對象

構(gòu)造函數(shù)用于定義實例的屬性,原型模式則用于定義方法和共享的屬性;

function Student(name,sex,grade){
    this.name=name;
    this.sex=sex;
    this.grade=grade;
}
 
Student.prototype.sayName=function(){
    console.log(this.name);
}
 
Student.prototype.school="nongda";

這種混合模式可以支持想構(gòu)造函數(shù)傳入?yún)?shù),還極大的節(jié)約了內(nèi)存。

6、利用動態(tài)原型方法創(chuàng)建對象。

代碼如下:

<script>
    function Person(name,age){
        this.name = name;
        this.age = age;
        this.array = new Array("Kitty","luo");
        //如果Person對象中_initialized 為undefined,表明還沒有為Person的原型添加方法
        if(typeof Person._initialized  == "undefined"){
            Person.prototype.showName = function () {
                console.log(this.name);
            };
            Person.prototype.showArray = function () {
                console.log(this.array);
            };
            Person._initialized = true;
        }
    }
  
    var obj1 = new Person("Kitty",21);
    var obj2 = new Person("luo",22);
    obj1.array.push("Wendy");//向obj1的array屬性添加一個元素
  
    obj1.showArray();//Kitty,luo,Wendy
    obj1.showName();//Kitty
    obj2.showArray();//Kitty,luo
    obj2.showName();//luo
</script>

這種方法和構(gòu)造函數(shù)/原型方式大同小異。只是將方法的添加放到了構(gòu)造函數(shù)之中,同時在構(gòu)造函數(shù)Person上添加了一個屬性用來保證if語句只能成功執(zhí)行一次,在實際應用中,采用最廣泛的構(gòu)造函數(shù)/原型方法。動態(tài)原型方法也很流行,它在功能上和構(gòu)造函數(shù)/原型方法是等價的。不要單獨使用構(gòu)造函數(shù)和原型方法。

以上就是關(guān)于“JavaScript可以創(chuàng)建對象嗎”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章標題:JavaScript可以創(chuàng)建對象嗎
URL地址:http://www.rwnh.cn/article2/jdjoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站收錄、電子商務、企業(yè)建站、網(wǎng)站策劃、標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
佛山市| 麦盖提县| 揭西县| 科尔| 都江堰市| 宁强县| 凉城县| 博兴县| 安国市| 邵武市| 玉龙| 青冈县| 通榆县| 抚远县| 建平县| 班玛县| 兴海县| 栾城县| 饶平县| 丹巴县| 安达市| 怀仁县| 伊通| 剑川县| 福泉市| 灵宝市| 桃园市| 通城县| 左贡县| 左贡县| 辽中县| 孟州市| 鹤岗市| 东阳市| 水富县| 日喀则市| 怀安县| 潍坊市| 昔阳县| 镇巴县| 惠安县|