JavaScript面向?qū)ο缶幊?/h1>
更新時間:2008年03月02日 14:53:04 作者:
暫時放棄js框架吧
開始寫javascript的時候都是自己寫,后來發(fā)現(xiàn)了prototype.js框架,發(fā)現(xiàn)很好用,就一直用的,他的對象創(chuàng)建方法被修改了,但很好用,再后來又轉(zhuǎn)用jquery框架,受此框架影響,也不用自己創(chuàng)建類了,漸漸的竟然忘記了如何自己定義類了,猛的給一個一般方法,竟然看著別扭,混淆了很多東西,忘記了很多東西。今天回頭整理下。
一下方法參考prototype.js
//類的定義
//方法一:類的一般定義方法
function player1(_name)
{
this.name = _name;
this.say = function() {alert(this.name);};
}
var p1 = new player1('llinzzi1');
p1.say();
//方法二:prototype定義方法
var player2 = function() {}
player2.prototype = {
name:'',
say:function(){
alert(this.name);
}
}
var p2 = new player2();
p2.name = 'llinzzi2';
p2.say();
//方法三:上面的方法結(jié)構(gòu)美觀,便捷,但構(gòu)建函數(shù)不能帶參數(shù),修改方法
var player3 = function() {
this.init.apply(this, arguments);
}
player3.prototype = {
init:function(_name){
this.name = _name;
},
say:function(){
alert(this.name);
}
}
var p3 = new player3('llinzzi3');
p3.say();
//類的繼承
//方法一
var player4 = function(){
this.init.apply(this, arguments);
}
player4.prototype = new player3;
player4.prototype.shout = function(){
alert(this.name.toUpperCase());
}
var p4 = new player4('llinzzi4');
p4.shout();
//方法二 上面的方法不能采用{}的方法,修改方法
Object.extend = function(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
};
var player5 = function(){
this.init.apply(this, arguments);
}
Object.extend(Object.extend(player5.prototype,player3.prototype),{
shout:function(){
alert(this.name.toUpperCase());
}
});
var p5 = new player5('llinzzi5');
p5.shout();
//再從prototype.js抄一端瀏覽器判斷代碼
Browser = {
IE: !!(window.attachEvent && !window.opera),
Opera: !!window.opera,
WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
}
alert(Browser.MobileSafari);
您可能感興趣的文章:- JS面向?qū)ο?、prototype、call()、apply()
- 面向?qū)ο蟮腏avascript之二(接口實現(xiàn)介紹)
- JS面向?qū)ο缶幊讨畬ο笫褂梅治?/a>
- JS 面向?qū)ο笾衿娴膒rototype
- ExtJS4 組件化編程,動態(tài)加載,面向?qū)ο螅珼irect
- javascript面向?qū)ο笕腴T基礎(chǔ)詳細介紹
- JS面向?qū)ο蠡A(chǔ)講解(工廠模式、構(gòu)造函數(shù)模式、原型模式、混合模式、動態(tài)原型模式)
- JS 拼圖游戲 面向?qū)ο?,注釋完整?/a>
- JAVASCRIPT THIS詳解 面向?qū)ο?/a>
- javascript 面向?qū)ο笕吕砭氈當?shù)據(jù)的封裝
- JS面向?qū)ο缶幊虦\析
- 同一頁面多個商品倒計時JS 基于面向?qū)ο蟮膉avascript
- javascript 面向?qū)ο缶幊袒A(chǔ) 多態(tài)
- javascript 面向?qū)ο?實現(xiàn)namespace,class,繼承,重載
- 解析JavaScript面向?qū)ο蟾拍钪械腛bject類型與作用域
相關(guān)文章
-
Js模塊打包exports require import的用法和區(qū)別
這篇文章主要介紹了Js模塊打包exports require import的用法和區(qū)別,對模塊打包感興趣的同學(xué),可以參考下 2021-05-05
-
詳解關(guān)于微信setData回調(diào)函數(shù)中的坑
這篇文章主要介紹了詳解關(guān)于微信setData回調(diào)函數(shù)中的坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 2019-02-02
-
js+csss實現(xiàn)的一個帶復(fù)選框的下拉框
用js+csss實現(xiàn)的一個帶復(fù)選框的下拉框,用到了很基礎(chǔ)的技術(shù),但是比較實用,喜歡的朋友可以參考下 2014-09-09
-
Javascript 網(wǎng)頁水印(非圖片水印)實現(xiàn)代碼
在一些B/S結(jié)構(gòu)的應(yīng)用系統(tǒng)中,有很多頁面是需要有水印的。常見的就是公文系統(tǒng)、合同系統(tǒng)等。 2010-03-03
-
javascript中的try catch異常捕獲機制用法分析
這篇文章主要介紹了javascript中的try catch異常捕獲機制,簡單分析了try catch異常捕獲機制的基本定義與使用方法,需要的朋友可以參考下 2016-12-12
-
網(wǎng)站發(fā)布后Bootstrap框架引用woff字體無法正常顯示的解決方法
這篇文章主要介紹了網(wǎng)站發(fā)布到IIS后Bootstrap框架引用的woff字體無法正常顯示的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下 2016-11-11
最新評論
//方法一:類的一般定義方法
function player1(_name)
{
this.name = _name;
this.say = function() {alert(this.name);};
}
var p1 = new player1('llinzzi1');
p1.say();
//方法二:prototype定義方法
var player2 = function() {}
player2.prototype = {
name:'',
say:function(){
alert(this.name);
}
}
var p2 = new player2();
p2.name = 'llinzzi2';
p2.say();
//方法三:上面的方法結(jié)構(gòu)美觀,便捷,但構(gòu)建函數(shù)不能帶參數(shù),修改方法
var player3 = function() {
this.init.apply(this, arguments);
}
player3.prototype = {
init:function(_name){
this.name = _name;
},
say:function(){
alert(this.name);
}
}
var p3 = new player3('llinzzi3');
p3.say();
//類的繼承
//方法一
var player4 = function(){
this.init.apply(this, arguments);
}
player4.prototype = new player3;
player4.prototype.shout = function(){
alert(this.name.toUpperCase());
}
var p4 = new player4('llinzzi4');
p4.shout();
//方法二 上面的方法不能采用{}的方法,修改方法
Object.extend = function(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
};
var player5 = function(){
this.init.apply(this, arguments);
}
Object.extend(Object.extend(player5.prototype,player3.prototype),{
shout:function(){
alert(this.name.toUpperCase());
}
});
var p5 = new player5('llinzzi5');
p5.shout();
//再從prototype.js抄一端瀏覽器判斷代碼
Browser = {
IE: !!(window.attachEvent && !window.opera),
Opera: !!window.opera,
WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
}
alert(Browser.MobileSafari);
您可能感興趣的文章:
- JS面向?qū)ο?、prototype、call()、apply()
- 面向?qū)ο蟮腏avascript之二(接口實現(xiàn)介紹)
- JS面向?qū)ο缶幊讨畬ο笫褂梅治?/a>
- JS 面向?qū)ο笾衿娴膒rototype
- ExtJS4 組件化編程,動態(tài)加載,面向?qū)ο螅珼irect
- javascript面向?qū)ο笕腴T基礎(chǔ)詳細介紹
- JS面向?qū)ο蠡A(chǔ)講解(工廠模式、構(gòu)造函數(shù)模式、原型模式、混合模式、動態(tài)原型模式)
- JS 拼圖游戲 面向?qū)ο?,注釋完整?/a>
- JAVASCRIPT THIS詳解 面向?qū)ο?/a>
- javascript 面向?qū)ο笕吕砭氈當?shù)據(jù)的封裝
- JS面向?qū)ο缶幊虦\析
- 同一頁面多個商品倒計時JS 基于面向?qū)ο蟮膉avascript
- javascript 面向?qū)ο缶幊袒A(chǔ) 多態(tài)
- javascript 面向?qū)ο?實現(xiàn)namespace,class,繼承,重載
- 解析JavaScript面向?qū)ο蟾拍钪械腛bject類型與作用域
相關(guān)文章
Js模塊打包exports require import的用法和區(qū)別
這篇文章主要介紹了Js模塊打包exports require import的用法和區(qū)別,對模塊打包感興趣的同學(xué),可以參考下2021-05-05詳解關(guān)于微信setData回調(diào)函數(shù)中的坑
這篇文章主要介紹了詳解關(guān)于微信setData回調(diào)函數(shù)中的坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02js+csss實現(xiàn)的一個帶復(fù)選框的下拉框
用js+csss實現(xiàn)的一個帶復(fù)選框的下拉框,用到了很基礎(chǔ)的技術(shù),但是比較實用,喜歡的朋友可以參考下2014-09-09Javascript 網(wǎng)頁水印(非圖片水印)實現(xiàn)代碼
在一些B/S結(jié)構(gòu)的應(yīng)用系統(tǒng)中,有很多頁面是需要有水印的。常見的就是公文系統(tǒng)、合同系統(tǒng)等。2010-03-03javascript中的try catch異常捕獲機制用法分析
這篇文章主要介紹了javascript中的try catch異常捕獲機制,簡單分析了try catch異常捕獲機制的基本定義與使用方法,需要的朋友可以參考下2016-12-12網(wǎng)站發(fā)布后Bootstrap框架引用woff字體無法正常顯示的解決方法
這篇文章主要介紹了網(wǎng)站發(fā)布到IIS后Bootstrap框架引用的woff字體無法正常顯示的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11