javascript教程系列49:javaScript教程:原型链不可变

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
<!--如图释义,创造个 (妻子)Person-->
  function Person(){

  }
  <!--实例对象p1(前任孩子),
    此时本身带有原型对象Person.prototype(前任丈夫)-->
  var p1 = new Person();
  <!--p1(前任孩子)是(前任丈夫)Person的实例
  --p1在Person.prototype(前任丈夫)的原型链上-->
  console.log(p1 instanceof Person); //true

  <!--构造新的Person.prototype (现任丈夫),改变(妻子)Person的原型对象(Person.prototype)指向-->
  Person.prototype = {
    constructor: Person,
    say:function(){
      console.log(‘shuohau‘);
    }
  }
  <!--创造现任孩子p2-->
  var p2 = new Person();

  <!--结果-->
  <!--(前任孩子p1)不在Person(妻子)与 现任丈夫(Person.prototype)的原型链上-->
  console.log(p1 instanceof Person); // false
  <!--(前任孩子p1)在Person(妻子)与 现任丈夫(Person.prototype)的原型链上-->
  console.log(p2 instanceof Person); // true

</script>
</body>
</html>

原文地址:https://www.cnblogs.com/autoXingJY/p/9053892.html

时间: 2024-10-10 11:45:55

javascript教程系列49:javaScript教程:原型链不可变的相关文章

javascript基础修炼——一道十面埋伏的原型链面试题

javascript基础修炼--一道十面埋伏的原型链面试题 在基础面前,一切技巧都是浮云. 题目是这样的 要求写出控制台的输出. function Parent() { this.a = 1; this.b = [1, 2, this.a]; this.c = { demo: 5 }; this.show = function () { console.log(this.a , this.b , this.c.demo ); } } function Child() { this.a = 2;

javascript教程50:认识instanceof 与 原型链

1 instanceof: 1.1 普通使用下: 判断一个对象是否是某个构造函数的实例: 语法 : 对象 instanceof 函数 是则返回true,不是则返回false. console.log(obj instanceof Object); 1.2 高级用法: 判断一个函数的原型对象,是否在实例对象的原型链上 1.3 案例如下: var arr = []; console.log(arr instanceof Array); //true console.log(arr instanceo

JavaScript深入系列(一)--原型和原型链详解

构造函数创建对象 首先我们先使用构造函数创建一个对象: function Person(){} var person = new Person(); person.name = 'tom'; console.log(person.name) //tom 在这个例子中,Person就是一个构造函数,我们使用new创建了一个实例对象person.接下来,进入正题: prototype 每个函数都有一个prototype属性,就是我们经常在各种例子中看到的那个prototype,比如: functio

javascript的oop——&gt;&gt;&gt; [__proto__ 与 prototype/原型链/原型属性与原型方法/for-in循环]

  前  言  OOP  javascript的oop中的__proto__  与  prototype/原型链/原型属性与原型方法/for-in循环 1  __proto__  与  prototype/原型链   1.prototype(函数的原型):函数才有prototype.prototype是一个对象,指向了当前构造函数的引用地址呢.                       2.__proto__(对象的原型对象):所有对象都要__proto__属性.当用构造函数实例化(new)一

JavaScript学习总结(四)——this、原型链、javascript面向对象

一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化,当然也可以使用call.apply修改this指向的对象.它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用 1.0.猜猜答案 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo

JavaScript基础知识十五(原型链批量设置公有属性)

function Fn(){ this.x = 100; } /* 1.把原来原型指向的地址赋值给我们的pro,现在它们 操作的是同一个内存空间*/ var pro = Fn.prototype; pro.getA =function(){}; pro.getB =function(){}; pro.getC =function(){}; /*2.重构原型的方式->自己新开辟一个堆内存,存储我们公有的. 属性和方法,把浏览器原来给Fn.prototype开辟的那个替换掉*/ Fn.prototy

JavaScript学习系列7 -- JavaScript中的运算符

今天,我们来说一说JavaScript中的运算符,首先我们来讲一讲 一元运算符 JavaScript中的一元运算符有以下几种 1. delete delete 运算符主要用于删除对以前定义的对象属性或者方法的引用, 举个例子如下 var myObj = new Object(); // 这一句和 var myobj = new Object(); 等价 myObj.name = "Luke"; alert(myObj.name); // 输出 "Luke" dele

JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承

说好的讲解JavaScript继承,可是迟迟到现在讲解.废话不多说,直接进入正题. 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考<面向对象JS基础讲解,工厂模式.构造函数模式.原型模式.混合模式.动态原型模式>,接下来讲一般通过那些方法完成JavaScript的继承. 原型链 JavaScript中实现继承最简单的方式就是使用原型链,将子类型的原型指向父类型的实例即可,即“子类型.prototype = new 父类型();”,实现方法如下

玩转JavaScript OOP[3]&mdash;&mdash;彻底理解继承和原型链

概述 首先,我们简单描述一下继承的概念:当一个类和另一个类构成"is a kind of"关系时,这两个类就构成了继承关系.继承关系的双方分别是子类和基类,子类可以重用基类中的属性和方法. 上一篇我们介绍了通过构造函数和原型可以实现JavaScript中的"类",由于构造函数和原型是对象,所以JavaScript的"类"本质上也是对象.这一篇我们将介绍JavaScript中的一个重要概念原型链,以及如何经原型链实现JavaScript中的继承.