首页 > 编程语言 >JavaScript学习笔记—原型对象prototype

JavaScript学习笔记—原型对象prototype

时间:2023-01-07 21:36:37浏览次数:47  
标签:__ console log mc JavaScript 笔记 MyClass prototype

  创建的每个函数,解析器都会向函数中添加一个属性prototype,这个属性对应着一个对象就是我们所谓的原型对象。
  函数作为普通函数调用prototype没有任何作用
  当函数以构造函数的形式调用时,它所创建对象中都会有一个隐含的属性,指向该构造函数的原型对象,可以通过__proto__来访问该属性

function MyClass(){
  
}
MyClass.prototype.a = 123;
MyClass.prototype.sayName = function(){
  alert("hello");
};
var mc = new MyClass();
console.log(MyClass.prototype); // Object
console.log(mc.__proto__); // Object
console.log(MyClass.prototype == mc.__proto__); // true
var mc2 = new MyClass();
console.log(MyClass.prototype == mc2.__proto__); // true

console.log(mc.a); // 123
console.log(mc2.a); // 123
mc.a = 456;
console.log(mc.a); // 456
console.log(mc2.a); // 456
mc.sayName(); // 弹框hello

image

function Person(name, age, gender){
  this.name = name;
  this.age = age;
  this.gender = gender;
}
Person.prototype.sayName = function(){
  console.log("Hello大家好,我是" + this.name);
};
var per = new Person("孙悟空", 18, "男");
var per2 = new Person("玉兔精", 16, "女");

per.sayName(); // Hello大家好,我是孙悟空
per2.sayName(); // Hello大家好,我是玉兔精

标签:__,console,log,mc,JavaScript,笔记,MyClass,prototype
From: https://www.cnblogs.com/zibocoder/p/17033587.html

相关文章

  • Linux笔记03: Linux常用命令_3.4文件和目录共用命令
     3.4目录和文件共用命令 3.4.1rm命令  ●命令名称:rm。  ●英文原意:removefilesordirectories。   ●所在路径:/usr/bin/rm。   ●执行权限:所......
  • JavaScript学习笔记—声明
    (1)变量声明提前使用var关键字声明的变量,会在所有代码执行前被声明(但不会赋值)console.log("a="+a);//a已声明,但是值是undefinedvara=123;如果声明变量时不使用v......
  • JavaScript学习笔记—this的使用
      解析器调用函数时每次都会向函数传递进一个隐含的参数this,this指向的是一个对象,这个对象称为函数执行的上下文对象。  根据函数的调用方式不同,this会指向不同的对象......
  • JavaScript学习笔记—对象的方法
    对象的属性值可以是任何的数据类型,也可以是个函数如果函数作为对象的属性保存,那这个函数是这个对象的方法,调用函数就是调用对象的方法varobj=newObject();//向对象......
  • 学习笔记——书城项目之“我的订单”功能
    2023-01-07一、“我的订单”功能(1)找到“我的订单”的位置①购物车页面Cart.html中的第26行②结算完成页面Checkout.html中的第45行将两个位置中超链接的“href”改变......
  • JavaScript学习笔记—函数的参数
    (1)如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined//函数,a和b叫形参functionsum(a,b){console.log("a="+a);console.log("b="+b);consol......
  • JavaScript学习笔记—基本数据类型和引用数据类型
    基本数据类型:String、Number、Boolean、Null、Undefined引用数据类型:ObjectJS中的变量都是保存到栈内存中的  基本数据类型的值直接在栈内存中存储,值与值之间是独立......
  • JavaScript学习笔记—创建对象
    (1)new方式创建对象varobj=newObject();obj.name="孙悟空";obj.age=18;obj.sayName=function(){console.log("我是孙悟空");};(2)对象字面量创建对象可以......
  • 读C#代码整洁之道笔记07_代码评审和集成测试
    1. 代码评审注意事项1.1. 始终保持代码评审的意识1.2. 保证代码构建成功1.3. 确保所有的测试都是通过的1.4. 注意YAGNI原则1.5. 检查重复代码1.6. 使用静态......
  • Kafka学习笔记(七):Kafka KRaft - Removing Zookeeper
    关于KafkaKRaft在2020年,ApacheKafka项目做开始着手移除Zookeeper依赖(KIP-500)当Kafka集群拥有超过10万个分区时,Zookeeper有扩展问题删除Zookeeper之后,ApacheKa......