最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript实现类的多种方法实例_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:09:15
文档

JavaScript实现类的多种方法实例_javascript技巧

JavaScript实现类的多种方法实例_javascript技巧:构造方法 代码如下:function coder(){ this.name = '现代魔法'; this.job = 'Web 开发者'; this.coding = function () { alert('我正在写代码'); }} var coder = new coder();alert(coder.name);coder.cod
推荐度:
导读JavaScript实现类的多种方法实例_javascript技巧:构造方法 代码如下:function coder(){ this.name = '现代魔法'; this.job = 'Web 开发者'; this.coding = function () { alert('我正在写代码'); }} var coder = new coder();alert(coder.name);coder.cod


构造方法
代码如下:
function coder()
{
this.name = '现代魔法';
this.job = 'Web 开发者';
this.coding = function ()
{ alert('我正在写代码'); }
}

var coder = new coder();
alert(coder.name);
coder.coding();

工厂方法
代码如下:
function createCoderFactory()
{
var obj = new Object();
obj.name = '现代魔法';
obj.job = '程序员';
obj.coding = function ()
{
alert('我正在写代码');
};
return obj;
}
var coder = createCoderFactory();
alert(coder.name);
coder.coding();

工厂方法和构造方法都有着一个相同的缺点,就是每创建一个实例,都会实例化该类的每个函数。

原型链
代码如下:
function coder(){}
coder.prototype.name = '现代魔法';
coder.prototype.job = '程序员';
coder.prototype.coding = function(){
alert('我正在写代码');
};
var coder = new coder();
alert(coder.name);
coder.coding();

原型链有个缺点就是它所有属性都共享,只要一个实例改变其他的都会跟着改变。如:

代码如下:
var coder1 = new coder();
var coder2 = new coder();
alert(coder1.name); /*显示现代魔法*/
coder2.name = 'nowamagic';
alert(coder1.name); /*显示nowamagic*/
alert(coder2.name); /*这个也显示nowamagic*/

混合方式
以上三种都有着各自的缺点,所以我们要加以改进。

代码如下:
function coder()
{
this.name = '现代魔法';
this.job = '程序员';
}
coder.prototype.coding = function(){
alert('我正在写代码');
};

动态原链
要解决前三种的缺点,还有一种方法。

代码如下:
function coder()
{
this.name = '现代魔法';
this.job = '程序员';
if (typeof(coder._init) == 'undefined')
{
this.coding = function ()
{
alert('我正在写代码');
};
this._init = true;
}
}

文档

JavaScript实现类的多种方法实例_javascript技巧

JavaScript实现类的多种方法实例_javascript技巧:构造方法 代码如下:function coder(){ this.name = '现代魔法'; this.job = 'Web 开发者'; this.coding = function () { alert('我正在写代码'); }} var coder = new coder();alert(coder.name);coder.cod
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top