声明提前原型静态方法的一些所得
Posted 金钩梨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了声明提前原型静态方法的一些所得相关的知识,希望对你有一定的参考价值。
一、声明提前:
声明提前有3个过程:创建、初始化、赋值:
console.log(x); // undefined function xxx(){}; var x=10; // 等同于 var x=undefined; // 创建并初始化 function xxx(){}; x=10; // 赋值
然而let只创建不赋值:
console.log(x); // 报错 let x=10; function xxx(){}; // 等同于 let x; function xxx(){};
二、原型
通常我们会这样创建一个对象:
var Plane=function(){ this.name=‘plane‘; } var plane=new Plane(); plane.name=‘plane1‘;
我们除了通过new一个实例外,还可以通过克隆:
var plane2=Object.create(plane);
我们在javascript遇到的每个对象,实际上都是从Object.prototype对象克隆而来的,Object.prototype就是它们的原型。用new运算符来创建对象的过程,实际上也只是先克隆Object.prototype对象,再进行一些其他额外操作的过程。
JavaScript给对象提供了__proto__,某个对象的__proto__属性默认会指向它的构造器的原型对象:
function Animal(name){ this.name=name; } var dog=new Animal(); console.log(dog.__proto__===Animal.prototype); // true
三、静态方法
通过static定义鼎泰方法,静态方法可以直接调用:
class Animal{ spaeak(){ return this; } static eat(){ return this; } } Animal.speak(); // 报错 Animal.eat(); // 直接调用
以上是关于声明提前原型静态方法的一些所得的主要内容,如果未能解决你的问题,请参考以下文章