首页 > 代码库 > javascript中的原型对象
javascript中的原型对象
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <script type="text/javascript"> // 原型 // 构造函数的prototype属性的值 function Person() { this.name = "adfs"; } // 访问原型: // console.log(Person.prototype); // 给原型添加的方法 Person.prototype.say = function() { // console.log("这事原型的方法"); console.log(this.name); }; Person.prototype.name = "aaaaaaa"; // 表示非公开的方法, 可以使用,但是 可能存在问题 // Person.prototype._init = function() {}; // 通过构造函数来创建对象 var p = new Person(); // 通过p这个实例,来访问到原型中的方法或者是属性 p.say(); Person.prototype.say(); // 以下两种方式调用的区别: // p.say(); // Person.prototype.say(); // // 1 通过对象来调用方法是 通过属性搜索原则找到的方法,然后再调用 // 2 直接访问到方法,然后再调用的 // 3 方法内部的 this 指向不同 // 方法内部的this :谁调用的方法,this就是指向谁 // __proto__ // 还可以通过通向直接访问到原型 // 只要是带有 __ 就表示非标准的属性, 不能不再实际项目中使用 // 有些框架中写的方法的名字也带有下划线: // 表示这些方法是再框架内部使用的 // 如果,你拿来使用,出问题了,框架不负责 // p.__proto__ console.log(Person.prototype === p.__proto__); // true // 构造函数的prototype属性 和 对象的__proto__表示的就是同一个对象 // 只不过是 通过不同的方法来访问这个对象(原型) p.__proto__.say(); // console.log(p.__proto__); // 两个术语: // prototype 原型属性 // __proto__ 原型对象 // 就好比是 o1和o2是两个变量,但是这两个变量就是同一个对象 // var o1 = {}; // var o2 = o1; </script></body></html>
javascript中的原型对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。