目前为止我认为这是最佳的声明对象的模式,将今天学到的东西写下

<script type="text/javascript">
function Constructor(obj,options){ this.selector = options.selector;
this.time = options.time;
this.step = options.step;
this.obj = document.getElementById(obj);
//私有方法,将不被共享,所以此方法在各个实例中不是不相等的
this.fuck = function(){
//code here
alert('fuck');
}
} //公共方法,原形继承,方法在实例中是相等的
Constructor.prototype.getName = function(){
//code here
alert(this.selector); }
Constructor.prototype.setName = function(){
//code here
alert(this.time);
}
Constructor.prototype.getIndex = function(){
//code here
alert(this.step);
} //call继承,通过继承可以扩充实例化后的对象的作用域,call(obj,[,arr1[,arr2[,arr3]]]);
//obj作为第一个参数即是this指针的指向,通过重新定义指针,可以将函数的作用域赋予继承对象中;
//后面的参数为可选项,以逗号分隔开。这是与apply方法区别之处;
function callFunc(a,b){
this.a = a;
this.b = b;
this.c = function(){
return this.a + this.b;
}
} //apply继承
//call继承,通过继承可以扩充实例化后的对象的作用域,call(obj,[arr1,arr2,arr3]);
//obj作为第一个参数即是this指针的指向,通过重新定义指针,可以将函数的作用域赋予继承对象中;
//后面的第二个参数为可选项,以数组形式存在。这是与apply方法区别之处;
function applyFunc(a,b){
this.a = a;
this.b = b;
this.c = function(){
return this.a * this.b;
}
} //实例化一个对象Constructor1
var Constructor1 = new Constructor('slider',{
selector:'selector',
time:2000,
step:30
});
//实例化一个对象Constructor2
var Constructor2 = new Constructor('slider',{
selector:'selector',
time:2000,
step:30
}); console.log(Constructor1 instanceof Constructor);//true
console.log(Constructor2 instanceof Constructor);//true console.log(Constructor1.fuck == Constructor2.fuck);//false //call继承callFunc中作用域
callFunc.call(Constructor1,1,2);
console.log(Constructor1.c());//3 //apply继承applyFunc中作用域
applyFunc.apply(Constructor1,[3,2]);
console.log(Constructor1.c());//6 </script>

  

javascript构造函数+原形继承+作用域扩充的更多相关文章

  1. JavaScript 构造函数的继承

    JavaScript 构造函数的继承 在上一篇文章中讲述了 JS 对象.构造函数以及原型模式,这篇文章来讨论下 JavaScript 的继承 继承是 OO 语言中的一个最为人津津乐道的概念.许多 OO ...

  2. Javascript 构造函数原型继承机制

    我们先聊聊Js的历史,1994年Netscape公司发布了Navigator浏览器0.9班.这是历史上第一个比较成熟的网络浏览器.轰动一时.但是,这个版本的浏览器只能用来浏览,不具备交互功能,最主要的 ...

  3. JavaScript构造函数、继承的理解

    前两天稍微深入一点点理解了原型和原型链,然后就开始有挺多疑问的: function dog() { this.name = "huahua"; } var cat = new do ...

  4. Javascript构造函数的继承

    仅供学习参考,原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html 今天要介绍 ...

  5. JavaScript构造函数+原型创建对象,原型链+借用构造函数模式继承父类练习

    虽然经常说是做前端开发的,但常常使用的技术反而是JQuery比较多一点.在JavaScript的使用上相对而言少些.尤其是在创建对象使用原型链继承上面,在项目开发中很少用到.所以今天做个demo练习一 ...

  6. (三)Javascript面向对象编程:非构造函数的继承

    Javascript面向对象编程:非构造函数的继承   这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承". 今天是最后一个部分,介绍不使 ...

  7. (二)Javascript面向对象编程:构造函数的继承

    Javascript面向对象编程:构造函数的继承   这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承 ...

  8. Javascript面向对象编程(三):非构造函数的继承(对象的深拷贝与浅拷贝)

    Javascript面向对象编程(三):非构造函数的继承   作者: 阮一峰 日期: 2010年5月24日 这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现&quo ...

  9. Javascript面向对象编程(二):构造函数的继承 作者:yuan一峰

    Javascript面向对象编程(二):构造函数的继承   作者: 阮一峰 日期: 2010年5月23日 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生 ...

随机推荐

  1. 关于链接target的问题

    <a href="http://www.baidu.com" target="_blank">点击链接</a> target: _bla ...

  2. Android常见开源解决方案

    原文:http://m.pstatp.com/group/6348269082899497218/?iid=6036708044&app=news_article&tt_from=mo ...

  3. 拦截Response.Redirect的跳转并转换为Js的跳转

    有一个很常见的需求,某个页面需要用户登录才能访问,或者某个操作需要用户登录 这就需要检测用户登录,一般是使用Ajax去检测是否登录,当用户未登录时跳转到登录页面 那么问题来了···· 有的时候我们跳转 ...

  4. Dijkstra算法 最短路径 (部分)

    void Dijkstra(int n, int v, int *dist, int *prev, int c[maxnum][maxnum]) {     bool s[maxnum];       ...

  5. DataTable 对象 转换为Json 字符串

    /// <summary> /// DataTable 对象 转换为Json 字符串 /// </summary> /// <param name="dt&qu ...

  6. java学习笔记 (2) —— Struts2类型转换、数据验证重要知识点

    1.*Action.conversion-properties 如(point=com.test.Converter.PointListConverter) 具体操作类的配置文件 2.*Action. ...

  7. 读取Excel文件内容在Web上显示

    点击事件代码.cs protected void Button1_Click(object sender, EventArgs e) { string strPath = "d:/test. ...

  8. Linux下的管道命令有这些:

    Linux下的管道命令有这些: 选取命令:cat grep 排序命令:sort wc uniq 双向重定向:tee 字符转换命令: tr, col, join, paste, expand 切割命令: ...

  9. cygwin编译SDL1.2

    1.下载了一个SDL-1.2.14.tar.gz 2.下载一个cygwin64对SDL-1.2.14.tar.gz解压 tar -zxvf SDL-1.2.14.tar.gz 在网上找的大概是需要需要 ...

  10. CSS中cursor的pointer 与 hand-备

    cursor:hand 与 cursor:pointer 的效果是一样,都像手形光标(在浏览器上时   鼠标会显示成 小手 ).但用FireFox浏览时才注意到使用cursor:hand在FireFo ...