老生常谈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技巧之不要用for in语句对数组进行遍历
Oct 20 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
javascript文件中引用依赖的js文件的方法
Mar 17 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
Mar 20 Javascript
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
Sep 04 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
微信小程序 获取微信OpenId详解及实例代码
Oct 31 Javascript
Vue.JS入门教程之事件监听
Dec 01 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
Dec 28 Javascript
vue-cli+webpack项目 修改项目名称的方法
Feb 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&mysql(一)
2006/10/09 PHP
php面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
php实现购物车功能(下)
2016/01/05 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
js由下向上不断上升冒气泡效果实例
2015/05/07 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
webpack4.0打包优化策略整理小结
2018/03/30 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
python实现支付宝转账接口
2019/05/07 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
python实现按行分割文件
2019/07/22 Python
详解python破解zip文件密码的方法
2020/01/13 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
GWT都有什么特性
2016/12/02 面试题
学年自我鉴定
2014/01/16 职场文书
小松树教学反思
2014/02/11 职场文书
老干部工作先进事迹
2014/08/17 职场文书
读群众路线的心得体会
2014/09/03 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
护理见习报告范文
2014/11/03 职场文书
被告代理词范文
2015/05/25 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang
MySQL常用慢查询分析工具详解
2022/08/14 MySQL