老生常谈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插件jbox使用iframe关闭问题
Feb 09 Javascript
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
JSON中双引号的轮回使用过程中一定要小心
Mar 05 Javascript
JavaScript的字符串方法汇总
Jul 31 Javascript
jQuery过滤选择器用法示例
Sep 12 Javascript
JavaScript中数组的各种操作的总结(必看篇)
Feb 13 Javascript
JS中this的指向以及call、apply的作用
May 06 Javascript
jquery实现聊天机器人
Feb 08 jQuery
jQuery HTML设置内容和属性操作实例分析
May 20 jQuery
JavaScript中变量提升和函数提升的详解
Aug 07 Javascript
JS typeof fn === 'function' && fn()详解
Aug 22 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
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函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
初步理解Python进程的信号通讯
2015/04/09 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
查看Django和flask版本的方法
2018/05/14 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
学校卫生检查制度
2014/02/03 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
社保转移委托书范本
2014/10/08 职场文书
商务考察邀请函模板
2015/02/02 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android