ECMAScript 創(chuàng)建自己的js類庫(kù)
1:什么是函數(shù)?
ECMAScript函數(shù)其實(shí)就是對(duì)象,每個(gè)函數(shù)都是Function類型的實(shí)例而且有屬性和方法,由于函數(shù)是對(duì)象,函數(shù)名其實(shí)就是指向函數(shù)對(duì)象的指針,不會(huì)與某個(gè)函數(shù)綁定。
2:創(chuàng)建函數(shù)的方法
(1):function Person(name)
{
return name;
}
(2):var Person=function(name)
{
return name;
}
(3):var Person=new function(“name”,”return name”);(不推薦使用,ECMAScript會(huì)解析兩次所以不推薦使用)
3:函數(shù)聲明和函數(shù)表達(dá)式的不同
ECMAScript對(duì)函數(shù)聲明和函數(shù)表達(dá)式的解析并非一視同仁,解析器會(huì)先讀取函數(shù)聲明,并使其在任何代碼前都可用。
例:
assert(false);
function assert(value, msg) {
if (!value) {
alert (msg || (value + " does not equal true"));
}
}

函數(shù)表達(dá)式為執(zhí)行到這一行才解析器才會(huì)解析
如:assert(false);
var assert= function (value, msg) {
if (!value) {
alert (msg || (value + " does not equal true"));
}
}

4:理解this屬性
this 屬性是我們經(jīng)常用的屬性,其行為與Java,C#,PHP大致類似。
如:window.name='用未來(lái)思考現(xiàn)在';
window.name = "用未思考現(xiàn)在;
showName();
function showName() {
alert(this.name);
}

5:創(chuàng)建自己的類庫(kù)插件
簡(jiǎn)單的介紹了下函數(shù),對(duì)于理解函數(shù)這些內(nèi)容遠(yuǎn)遠(yuǎn)不夠,例如構(gòu)造函數(shù)模式,原形模式,原形鏈等等都是要花很多時(shí)間去理解。
創(chuàng)建類
var Class = function () {
var extclass = function () {
//接收屬性傳過(guò)來(lái)的參數(shù)
this.init.apply(this, arguments);
}
//給類添加自定義屬性
extclass.prototype.init = function () { };
//給prototypr定義別名?
extclass.fn = extclass.prototype;
//定義類的別名?
extclass.fn.parent = extclass;
//給類添加屬性
extclass.extend = function (obj) {
var extended = obj.extended;
for (var i in obj) {
extclass.fn[i] = obj[i];
}
if (extended) extended(extclass);
};
//給實(shí)例添加屬性
extclass.include = function (obj) {
var included = obj.included;
for (var i in obj) {
extclass.fn[i] = obj[i];
}
if (included) included(extclass);
}
return extclass;
}
類庫(kù)大致的框架構(gòu)建完成,這樣我們創(chuàng)建類可以調(diào)用extended方法,創(chuàng)建實(shí)例可以調(diào)用include方法。下一章節(jié)會(huì)在此基礎(chǔ)上擴(kuò)展更多功能,基于原型給“類”添加繼承。
- 一實(shí)用的實(shí)現(xiàn)table排序的Javascript類庫(kù)
- javascript拖拽上傳類庫(kù)DropzoneJS使用方法
- JavaScript人臉識(shí)別技術(shù)及臉部識(shí)別JavaScript類庫(kù)Tracking.js
- 5個(gè)最佳的Javascript日期處理類庫(kù)分享
- 寫自已的js類庫(kù)需要的核心代碼
- stream.js 一個(gè)很小、完全獨(dú)立的Javascript類庫(kù)
- 用js小類庫(kù)獲取瀏覽器的高度和寬度信息
- js插件類庫(kù)組織與管理(基于asp.net管理)
- JavaScript 應(yīng)用類庫(kù)代碼
- JS開發(fā)自己的類庫(kù)實(shí)例分析
相關(guān)文章
2020淘寶618理想生活列車自動(dòng)領(lǐng)喵幣js腳本的代碼
這篇文章主要介紹了2020淘寶618理想生活列車自動(dòng)領(lǐng)喵幣腳本,需要先安裝 auto.js腳本,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記七:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)組合模式詳解
這篇文章主要介紹了Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)組合模式,結(jié)合實(shí)例形式分析了《javascript設(shè)計(jì)模式》中Javascript面向?qū)ο蠼M合模式相關(guān)概念、原理、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04BootStrap下的彈出框加載select2框架失敗的解決方法
本文通過(guò)簡(jiǎn)單的代碼給大家介紹了BootStrap下的彈出框加載select2框架失敗的解決方法,需要的朋友參考下吧2017-08-08H5微信公眾號(hào)授權(quán)的簡(jiǎn)單實(shí)現(xiàn)步驟
如果用戶在微信客戶端中訪問(wèn)第三方網(wǎng)頁(yè),公眾號(hào)可以通過(guò)微信網(wǎng)頁(yè)授權(quán)機(jī)制,來(lái)獲取用戶基本信息,進(jìn)而實(shí)現(xiàn)業(yè)務(wù)邏輯,這篇文章主要給大家介紹了關(guān)于微信公眾號(hào)授權(quán)的相關(guān)資料,需要的朋友可以參考下2021-07-07原生js實(shí)現(xiàn)fadein 和 fadeout淡入淡出效果
這篇文章主要介紹了通過(guò)原生js實(shí)現(xiàn)fadein 和 fadeout淡入淡出效果,需要的朋友可以參考下2014-06-06JavaScript中的值是按值傳遞還是按引用傳遞問(wèn)題探討
這篇文章主要介紹了JavaScript中的值是按值傳遞還是按引用傳遞問(wèn)題探討,本文講解了按值傳遞、按引用傳遞、按共享傳遞、基本類型的不可變(immutable)性質(zhì)等內(nèi)容,需要的朋友可以參考下2015-01-01layui實(shí)現(xiàn)數(shù)據(jù)表格table分頁(yè)功能(ajax異步)
這篇文章主要為大家詳細(xì)介紹了layui實(shí)現(xiàn)數(shù)據(jù)表格table分頁(yè)功能、異步加載,表格渲染,含條件查詢,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07