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的实例对象
网友评论