js原型链

oop两种实现方式1.class;2原型

----原型---

prototype為函數原型對象 除(Function.prototype )沒有prototype屬性 typeof Function.prototype=function

proto為對象属性

function a(){} a.prototype.constructor(實例自帶constructor屬性)=a

只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性(同时它也是一个对象),默认情况下prototype属性(对象)会默认获得一个constructor(构造函数)属性,这个属性是一个指向prototype属性所在函数的指针

----原型链 实现私有等----

私有变量 var fn=function(){}

静态变量 a.fn=function(){}

实例变量 this.fn=function(){} 实例才能用 本身用不了

https://blog.csdn.net/qq_30904985/article/details/81248613

----普通对象与函数对象---

function f1(){};
 var f2 = function(){};
 var f3 = new Function('str','console.log(str)');
 var o3 = new f1();
 var o1 = {};
 var o2 =new Object();

 console.log(typeof Object); //function 
 console.log(typeof Function); //function
 console.log(typeof o1); //object
 console.log(typeof o2); //object
 console.log(typeof o3); //object
 console.log(typeof f1); //function
 console.log(typeof f2); //function
 console.log(typeof f3); //function

凡是通过 new Function() 创建的对象都是函数对象(f1 f2 f3),其他的都是普通对象 Function Object 也都是通过 New Function()

var temp = new f1();

f1. prototype = temp;//f1. prototype为temp的实例对象

https://blog.csdn.net/valada/article/details/79909782

你可能感兴趣的:(js原型链)