• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > javascript原型链详细解析

javascript原型链详细解析

作者:kuke_kuke 字体:[增加 减小] 来源:互联网 时间:2017-09-18

kuke_kuke通过本文主要向大家介绍了javascript,constructo,对象等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

作用一:分辨原型对象到底属于哪个构造函数

function isInstance(Func,obj){
    return obj.constructor === Func;
}
console.log(isInstance(fn5,obj5));

作用二:可以从一个实例对象新建另一个实例对象

function fn6(){

}
var x = new fn6();
var y = new x.constructor();

系统提供一个方法来判断实例对象是否为该构造函数构造(准确解释为是否在同一原型链上)—-instanceof

console.log(y instanceof fn6);
console.log(isInstance(fn6,y));

作用三:在实例方法中,可以通过constructor调用自身的构造函数

fn6.prototype.createCopy = function(){      //在fn6.prototype中声明了createCopy方法
    return new this.constructor();
}
var obj6 = new fn6();   //this.constructor指向fn6
console.log(obj6.constructor === fn6);  //true
console.log(obj6.createCopy().__proto__ === fn6.prototype);     //true

作用四:继承

function Father(){
    this.sex = '雄性';
}
function Son(){
    this.age = '1';
    Son.superclass.constructor.call(this);
    // p.constructor.call(this);
    // Father.call(this);
}

// var p = new Father();
Son.superclass = new Father();
var you = new Son();
console.log(you.age);   //1
console.log(you.sex);   //雄性

由于constructor属性是一种对象与构造函数的关联关系
所以我们在修改原型对象的时候,务必小心
易错示例:

function A(){

}
var a = new A();
console.log(a instanceof A)     //true

function B(){

}

A.prototype = B.prototype;

console.log(a.constructor === B);   //false
console.log(a.constructor === A);   //true

console.log(a instanceof A);    //false 结果失真
console.log(a instanceof B);    //false 结果失真

此篇主要介绍了constructor作用,如想详细了解javascript原型链,请参考:http://blog.csdn.net/qq_33599109/article/details/78020488

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JavaScript瀑布流布局实现代码
  • Javascript实现页面滚动时导航智能定位
  • JavaScript实现打地鼠小游戏
  • javascript编写简易计算器
  • JavaScript实现无穷滚动加载数据
  • JavaScript仿微信打飞机游戏
  • javascript 中关于array的常用方法详解
  • javascript 中的继承实例详解
  • JavaScript函数表达式详解及实例
  • JavaScript中双向数据绑定详解

相关文章

  • 2017-05-11easyui 中的datagrid跨页勾选问题的实现方法
  • 2017-05-11JavaScript实现的select点菜功能示例
  • 2017-05-11JavaScript调试的多个必备小Tips
  • 2017-05-11AngularJS ui-router (嵌套路由)实例
  • 2017-05-11js 转义字符及URI编码详解
  • 2017-05-11js实现常见的工具条效果
  • 2017-05-11JavaScript对象引用与赋值实例详解
  • 2017-05-11浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
  • 2017-05-11Spring Boot+AngularJS+BootStrap实现进度条示例代码
  • 2017-05-11Node.js发送HTTP客户端请求并显示响应结果的方法示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 基于JavaScript实现全选、不选和反选效果
    • 常用排序算法的js实现(冒泡、选择、插入、归并、希尔、快排)
    • jQuery实现扑克正反面翻牌效果
    • Bootstrap Scrollspy源码学习
    • 如何使用bootstrap框架 bootstrap入门必看!
    • Javascript基础回顾之(三) js面向对象
    • 深入理解Javascript箭头函数中的this
    • javascript遍历json对象的key和任意js对象属性实例
    • Vue.js实战之通过监听滚动事件实现动态锚点
    • webpack入门必知必会

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有