老生常谈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 相关文章推荐
Javascript 汉字字节判断
Aug 01 Javascript
js简单实现交换Li的值
May 22 Javascript
JQuery工具函数汇总
Jun 15 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
Oct 13 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
全面理解JavaScript中的闭包
May 12 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
Vue+SpringBoot开发V部落博客管理平台
Dec 27 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
Dec 12 Javascript
javascript 设计模式之享元模式原理与应用详解
Apr 08 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
一个目录遍历函数
2006/10/09 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
php5.3不能连接mssql数据库的解决方法
2014/12/27 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
python的dict,set,list,tuple应用详解
2014/07/24 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
基于Python测试程序是否有错误
2020/05/16 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
养殖项目策划书范文
2014/01/13 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
化验室安全管理制度
2015/08/06 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
2019年入党思想汇报
2019/03/25 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
OpenCV 图像梯度的实现方法
2021/07/25 Python
Java使用JMeter进行高并发测试
2021/11/23 Java/Android