日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

云笔记项目-补充JS面向对象编程基础知识

發(fā)布時間:2024/8/26 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云笔记项目-补充JS面向对象编程基础知识 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡單介紹:

此部分知識為在做云筆記項目中補充,因為云筆記項目中涉及到前端js,里面寫了很多js腳本,用到了創(chuàng)建js屬性和方法,在js中直接聲明的屬性和方法最終都會變成window的對象,即其成為了全局變量,可以在控制臺直接調(diào)用。

(1)如何創(chuàng)建js對象

1 JSON語法聲明對象(直接量聲明語法)-->var obj={}

2 使用Object創(chuàng)建對象? -->var obj=new Object()

? (2) js對象可以后期添加屬性

1?var obj={};??obj.name="tom";?這樣可以使用obj.name訪問其屬性

2?var obj1=new Object();?obj1.name="tom";?這樣也可以訪問obj.name、

(3)js對象特點:

?1.new Object()和JSON語法創(chuàng)建的對象沒有差別,JSON語法簡潔方便,更加容易使用。

?2.對象可以隨時添加屬性,對象.屬性=值

?3.不存在的屬性,值是undefined,undefined 相當如false,利用這點可以檢查屬性是否存在,if(!obj.age){ console.log("沒有age屬性"); }或者if(obj.age){console.log("年齡"+obj.age);}

?4.可以隨時刪除對象的屬性?delete 對象.屬性,如?delete obj.age;,刪除成功后返回true。

?5.JS Object底層本質(zhì)上是一個散列表,為對象添加屬性,本質(zhì)上是添加了key和value,key是屬性名,value是屬性值。訪問對象屬性,本質(zhì)上是get(key)。刪除對象屬性,本質(zhì)上是delete(key)。

(4)JS對象的方法

JS對象的方法,本質(zhì)上還是一個屬性,是一個屬性值為函數(shù)對象的屬性。obj.who=function(){console.log(this.name);}obj.who()為調(diào)用方法,obj.who為調(diào)用方法屬性的值,將打印方法到控制臺。

可以像屬性一樣刪除方法,?delete obj.who; 刪除后再次調(diào)用方法執(zhí)行會報錯沒有方法。

可以修改屬性值,如果屬性值為方法,也可以修改方法。obj.name='tom',?obj.name='Jerry'; obj.name被覆蓋了,成了Jerry。obj.who=function(){console.log(this.name);},obj.who=function(){console.log('hello world');}obj.who方法被覆蓋了,執(zhí)行后的結(jié)果為hello world。云筆記項目中的alert方法,就被覆蓋了,里面重新寫了一個方法覆蓋了原生的alert方法。

JS方法中沒有重載!!在做云筆記的時候,當時還差點想重載加載筆記列表的方法,修改參數(shù)列表,企圖實現(xiàn)方法重載,原來跟java不一樣,是不能重載的。

obj.add=function(a,b){return a+b},obj.add=function(a,b,c){return a+b+c},這樣方法被覆蓋了,只保留第二個方法。如果調(diào)用add(1,2),第三個參數(shù)發(fā)現(xiàn)沒有,導(dǎo)致第三個參數(shù)為undefined,導(dǎo)致整個結(jié)果為NAN,如果寫成add(1,2,3,4),第四個參數(shù)沒用上,也能執(zhí)行出結(jié)果,JS有點靈活。

(5)使用JSON直接聲明屬性和方法

?var obj={name:'tom',age:28,who:function(){console.log('this.name')}};

(6)默認的變量和函數(shù)

在網(wǎng)頁中直接聲明的變量和函數(shù)是window對象的屬性和方法,即全局變量,如云筆記項目中聲明的noteTemplate,notebookTemplate等,都是window的屬性,里面也寫了很多方法,發(fā)現(xiàn)也成了window的方法,控制臺可以直接打window后能彈出

?調(diào)用window.alert();方法直接彈出重寫后的提示。

補充:

(1)JS對象沒有封裝性可言,JS沒有面向?qū)ο蟮娜筇匦?#xff0c;繼承多態(tài)和封裝,Javascript不是面向?qū)ο蟮恼Z言。

(2)JS中所有的方法都有返回值,如果有return值就是return的值,沒有就默認為undefined

轉(zhuǎn)載于:https://www.cnblogs.com/youngchaolin/p/10502425.html

總結(jié)

以上是生活随笔為你收集整理的云笔记项目-补充JS面向对象编程基础知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。