原型

作者: 开心的小哈 | 来源:发表于2019-01-01 13:04 被阅读0次

1.原型是function对象的一个属性,他定义了构造函数制造出的对象的公共祖先.
通过该构造函数产生的对象,可以继承该原型和方法.原型也是对象
2.利用原型的特点和概念,可以提取共有属性
3.对象如何查看原型 隐式属性--proto
4.对象如何查看对象的构造函数---constructor

Person.prototype.name="hhe";//---->祖先
        function Person(){
            
        }
        var person=new Person();
        var person1=new Person();

原型增删改查
Person.prototype.sadf="asdf";增
delete Person.prototype.sadf 删
Person.prototype.sadf="lllllll"; 改
Person.prototype.name; 查
person.name;查2

function Person{
                //var this={
                //先上自己找
                //再上proto里面找
                //__proto__: person.prototype
                // }

练习2

hh.prototype.name="wo";
            function hh(){
                //var this{
                    // __proto__=prototype
                // }
            }
            var j=new hh();//我在此处用访问的是wo
            hh.prototype={
                name:"kk"
            };

原型链

Grand.prototype.name="Yan";
            function Grand(){
                
            }
            var grand=new Grand();
            Father.prototype=grand;
            function Father(){
                this.name="xuming";
            }
            var father=new Father();
            Son.prototype=father;
            function Son(){
                this.hobbit="sadfsadf";
            }
            var son=new Son();

a.sayName()
sayName里面的this指向是,谁调用这个方法,this就会至指向谁

Person.prototype={
height=100
}
function Person(){
this.eat=function(){
this.height ++;
}
}
var person= new Person();

绝大多数对象的最终都会继承自
Object.protopyte
Object.cteate(原型)

Object.prototype.toString
Number.prototype.toString
Array.prototype.toString
Boolean.prototype.toString
String.prototype.toString
var obj =Object.create(null);
obj.String = function(){
return '哈哈哈';
}
document.write(obj);

注意

向上取整
Math.ceil(123.456); //124
向下取整
Math.floor(123.9999)//123
随机数 0-1
Math.random()
小鼠
for(var i=0;i<10;i++){
                var num=Math.floor(Math.random()*100);
                console.log(num)
            }

call调用就会立即执行和方法执行差不多

//如果不new的话this指向window
            function Person(name,age){
                //this==obj
                this.name=name;
                this.age=age;
            }
            var person=new Person("我的",12);
            var obj={}
            // 参数一是更改this的指向,后面的参数是实参
            //如果不传入参数的话他和执行一样
            Person.call(obj,"他的",1111);
            //test()---->test.call();
function Person(name,age){
                this.name=name;
                this.age=age;
            }
            function Student(name,age,qq){
                Person.call(this,name,age)//不可以是student因为执行的时候student还是未定义的
                this.qq=qq;
            }
            var student=new Student("小明",19,2213123123);

apply第一位也是传入对象更改this,他和call不一样的地方是他后面传入的是数组

function Person(name,age){
                this.name=name;
                this.age=age;
            }
            function Student(name,age,qq){
                Person.apply(this,[name,age]);
                this.qq=qq;
            }
            var student=new Student("小明",19,2213123123);

总结:
call需要把实参按照形参的个数传进去
apply需要传入一个arguments

其实就是改变this指向,不同之处就是传入参数不同

相关文章

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • JavaScript 原型和原型链

    原型 在 JavaScript 中,我们所称的原型有两个使用语境: 原型关系 原型属性 原型关系指对象的原型对象,...

  • JavaScript 原型和原型链

    原型 在 JavaScript 中,我们所称的原型有两个使用语境: 原型关系 原型属性 原型关系指对象的原型对象,...

  • 原型、原型链

    (什么是原型、原型链?有什么作用) JavaScirpt深入之从原型到原型链 图解 Javascript 原型链 ...

  • 关于原型原型链的理解

    什么是原型? 什么是原型链? 为什么需要原型,和原型链?

  • js的原型对象&原型链&js的继承

    原型对象 & 原型链 原型对象分2种:显式原型和隐式原型。 显式原型就是我们常用的prototype属性,是函数的...

  • 4.4 JavaScript

    4.4.1. 原型链 4.4.1.1. 显式原型和隐式原型   JavaScript的原型分为显式原型(expli...

  • 原型、原型链

    理解JavaScript原型 彻底理解JavaScript原型 原型 原型是一个对象,所有对象都可以成为原型,其...

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • 2-6 原型和原型链 - 5个原型规则

    2-6 原型和原型链 - 5个原型规则 5条原型规则,原型规则是学习原型链的基础。 第一、所有引用类型(数组、函数...

网友评论

      本文标题:原型

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