美文网首页
js 原型一(概念和作用)

js 原型一(概念和作用)

作者: bug喵 | 来源:发表于2017-12-05 17:42 被阅读0次

原型的概念和作用

描述原型的概念前,请诸位先看如下代码

      function Person(name, age) {
           this.name = name;
           this.age = age;
           this.sayHi = function() {
           console.log('Hi, meimei,go play.');
           };      
       }

       var zs = new Person('张三', 19);
       var ls = new Person('李四', 20);

       zs.sayHi();
       ls.sayHi();

       console.log(ls.sayHi === zs.sayHi); //false

这说明在内存中存在了两个逻辑功能相同的sayHi函数,这是冗余的代码,更会造成内存的浪费,而用户开启大量应用程序的时候,只会给我们网页留很少很少的内存。
这个时候,我们就需要把这个sayHi函数放在原型上。原型就是用来放共享数据,方法的地方。

原型的概念定义为:所谓原型就是指函数的prototype属性所引用的对象,这个对象就是原型。
原型的作用1:实现对象之间的数据共享。2.在es6之前,没有class的情况下,模拟面向对象,构造函数中放私有属性,原型上放公有属性,一般为方法。

这时,我们上述的代码可以改造成如下的样子

      function Person(name, age) {
            this.name = name;
            this.age = age;         
        }

        Person.prototype.sayHi = function() {
            console.log('Hi, meimei,go play.');
        };

        var zs = new Person('张三', 19);
        var ls = new Person('李四', 20);

        zs.sayHi();
        ls.sayHi();

        console.log(ls.sayHi === zs.sayHi); //true

**获取原型的方法:1.函数.prototype;2.对象._ proto (如果当前浏览器不支持. proto _,那么就通过对象的构造函数找:.constructor.prototype;
原型本身是一个对象。

此外,在es5中,还提供了一个比较简便的,不需要写构造函数等原型创建对象方法:object.create。

var parent = {say: function() {console.log('nihao');}};

var np = Object.create(parent);

// 相当如下创建对象方法
function F() {}
F.prototype = parent;
var np = new F;

相关文章

  • js 原型一(概念和作用)

    原型的概念和作用 描述原型的概念前,请诸位先看如下代码 这说明在内存中存在了两个逻辑功能相同的sayHi函数,这是...

  • JS进阶系列

    在JS入门难点解析系列中,我们对JS的一些重要概念,比如:作用域,作用域链,原型,原型链,继承,活动对象,this...

  • JS博客

    JS构造函数及new运算符 JS原型对象和原型链 函数作用域和作用域链 干货分享:让你分分钟学会JS闭包 深入理解...

  • 5-1 从基础知识到JSWebAPI

    回顾js基础知识 JS-web-API 总结 回顾js基础知识 变量类型和计算 原型和原型链 闭包与作用域 异步和...

  • js构造函数与原型对象的区别与联系

    建议阅读本篇之前先了解原型对象和构造函数的概念,你可以看JS链知多少?了解原型,看学好js,这些js函数概念一定要...

  • JavaScript 05 函数

    js函数的概念和作用,js函数的定义,js函数的调用,js事件驱动的概念,js函数的实参和形参,js的作用域,js...

  • ! js手写实践

    1.闭包2.js执行机制3.new发生了什么4.防抖和节流5.js原型和原型链6.js作用域和作用域链7.深拷贝、...

  • 2022前端高频面试题

    JS相关 1.原型和原型链是什么 原型和原型链都是来源于对象而服务于对象的概念js中引用类型都是对象,对象就是属性...

  • JS-Web-Api

    JS基础知识,规定语法(ECMA262标准); 变量类型和计算 原型和原型链 作用域和闭包 异步和同步 JS We...

  • 6.js-Web-API-DOM、BOM

    js基础知识:基于ECMA 262标准(规定基础语法、规则) --变量类型和计算--原型和原型链--闭包和作用域-...

网友评论

      本文标题:js 原型一(概念和作用)

      本文链接:https://www.haomeiwen.com/subject/zqquuxtx.html