老生常谈Javascript中的原型和this指针


Posted in Javascript onOctober 09, 2016

1、Javascript中的原型:

原型prototype是Javascript中特有的一个概念。通过原型,Javascript可以实现继承机制。

Javascript本身是基于原型的,每一个对象都有一个prototype属性。而Object对象的prototype属性为null。

下面来看一个使用原型实现继承的例子:

1.1使用原型实现继承:

 

function Person(name){
  this.name = name;
  this.getName = function(){
    return this.name;
  }
}
function Artist(type){
  this.type = type;
  this.getType = function(){
    return this.type;
  }
}
Artist.prototype = new Person("arthinking");
var artist = new Artist("Guitar");
alert(artist.getType()); //本身就有type属性
alert(artist.getName()); //从Person原型链上继承到的属性和方法

 2、this指针:

Javascript中的this指针与传统的面向对象中的有些不同。传统的面向对象中this指针在类中声明的,表示对象本身。

Javascript中this表示当前上下文,即调用者的引用。Javascript中this代表的对象不是根据函数的声明而确定的,而是根据的调用而确定的。下面展示了一个函数中的this使用call指定具体代表的对象:

var test1 = {
  name : "test1"
}
var test2 = {
  name : "test2"
}
function getName(){
  return this.name; //this根据传调用该函数的上下文来确定的,定义该函数时,this指针并不确定
}
alert(getName.call(test1));

这里的call是Function的一个函数。

以上就是小编为大家带来的老生常谈Javascript中的原型和this指针全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
location.href用法总结(最主要的)
Dec 27 Javascript
jQuery中innerHeight()方法用法实例
Jan 19 Javascript
JavaScript数据类型详解
Apr 01 Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 Javascript
javascript弹出窗口实现代码
Nov 12 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
在ABP框架中使用BootstrapTable组件的方法
Jul 31 Javascript
React + webpack 环境配置的方法步骤
Sep 07 Javascript
对于js垃圾回收机制的理解
Sep 14 Javascript
6种JavaScript继承方式及优缺点(小结)
Feb 06 Javascript
基于JavaScript实现简单抽奖功能代码实例
Oct 20 Javascript
浅谈Javascript中的函数、this以及原型
Oct 09 #Javascript
常用Javascript函数与原型功能收藏(必看篇)
Oct 09 #Javascript
javascript汉字拼音互转的简单实例
Oct 09 #Javascript
Javascript农历与公历相互转换的简单实例
Oct 09 #Javascript
Angularjs 创建可复用组件实例代码
Oct 09 #Javascript
Boostrap实现的登录界面实例代码
Oct 09 #Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 #Javascript
You might like
php下使用SMTP发邮件的代码
2008/01/10 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
JS 数字转换研究总结
2013/12/26 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
JS如何把字符串转换成json
2020/02/21 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
速记Python布尔值
2017/11/09 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Python切片工具pillow用法示例
2018/03/30 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
艺术用品:Arteza
2018/11/25 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
医科大学生的自我评价
2013/12/04 职场文书
励志演讲稿200字
2014/08/21 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
社区义诊通知
2015/04/24 职场文书
初三化学教学反思
2016/02/22 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB
python绘制云雨图raincloud plot
2022/08/05 Python