Javascript基本概念梳理

javascript里的数据类型:

原始类型:数字,字符串,布尔值。(原始值:null,undefined)

对象类型:键值对,数组,function,全局对象(MATH,JSON)

保留字:

abstract
boolean
byte
char
class
const
debugger
double
enum
export
extends
final
float
goto
implements
import
int
interface
long
native
package
private
protected
public
short
static
super
synchronized
throws
transient
volatile


包装对象的概念:

字符串"aaa".len 字符串并不是对象,但是却可以调用它的属性,说明这只是一个临时对象,内部用new String()来创建的临时的。


原始类型是永远不可变的,所以可以比较他们的值,但是对象类型是可变的,不能比较他们的值.

Javascript原型和继承:

Javascript里每个对象都和另外一个对象关联,这个对象就是__proto__(原型对象)注意这里的原型对象并不是prototype。

解释一下:这里的prototype指的是通过关键字new和构造函数调用创建的对象的原型就是构造函数的prototype属性。

对象实例的__proto__指向这个对象的prototype,而对象的__proto__为空。举个例子就是:

var array = new Array();
array.__proto__ === Array.prororype  //true
Array.__proro //null

当然,也可以使用Object.getPrototypeOf()替代__proto__来使用来得到对象所继承的原型,举例说明:

Object.getPrototypeOf(Array) === Array.__proto__;


Object.getPrototypeOf()来查看原型继承,例如:

Object.getPrototypeOf(Array.prototype) // Object  

可以看出Array的prototype继承Object所以Array也有他的方法例如totring()等。可以得到所有的对象都有一个共同的原型,就是Object但是Object只是一个构造函数,想要访问他,就只用Object..prototype来得到。


例如,Object..getPrototypeOf()来查看自定义的继承

function A(){};
function B(){};
A.prototype = new B();
Object.getPrototypeOf(A.prototype) //B

使用Object.create()实现继承:

Object.create()接受一个参数,为对象的prototype,其实还有第二个参数用来描述熟悉的特性,源码是基于new ()从而赋值他的prototype来实现的

Object.create = function (o) {

         var F = function () {};

         F.prototype = o;

         return new F();

     };

var b=Object.create(a);


Object.create()可以创建对象,当然也可以创建对象的子对象,可以这样理解

var a = Object.create({a:1})

那么a就有了一个熟悉a,这样就可以理解为继承了,如果是一个函数,例如Array是一个函数对象

var myArray = Object.create(Array.prototype)

那个myArray也就具有了Array的所有方法

myArray.push

自定义的函数

function Acc(){}
Acc.prototype.dd = 123;
var accc = Object.create(Acc.prototype);
accc.dd //123

未完!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值