老生常谈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 相关文章推荐
显示、隐藏密码
Jul 01 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
Jun 24 Javascript
jQuery中复合属性选择器用法实例
Dec 31 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
Nov 24 Javascript
再谈JavaScript异步编程
Jan 27 Javascript
JavaScript关于提高网站性能的几点建议(一)
Jul 24 Javascript
seajs学习之模块的依赖加载及模块API的导出
Oct 20 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 Javascript
vue-ajax小封装实例
Sep 18 Javascript
webpack 模块热替换原理
Apr 09 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
Aug 28 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学习教程之第2天
2008/06/15 PHP
php printf输出格式使用说明
2010/12/05 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
PHP中cookie知识点学习
2018/05/06 PHP
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
Python中作用域的深入讲解
2018/12/10 Python
python计算无向图节点度的实例代码
2019/11/22 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
golang/python实现归并排序实例代码
2020/08/30 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
社区爱国卫生月活动总结
2014/06/30 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
政府四风问题整改措施
2014/10/04 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
追悼会悼词大全
2015/06/23 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL
Redis keys命令的具体使用
2022/06/05 Redis
教你nginx跳转配置的四种方式
2022/07/07 Servers