原型链

1 创建对象的几种方法
2 原型,构造函数,实例,原型链

创建对象的几种方法

字面量的方法
1 var obj = {
    name:"Jack",
    age:90
}

var obj = new Object({name:"JAck"})

2 构造函数
function Person(name) {
  this.name = name
}
var p1 = new Person(Jack)


3 调用哪个系统的Object
var  obj = new Object
       obj.name = "Jact"

工程模式

function createPerson(name,job){
  var o = new Object()
  o.name = name
  o.job = job

}

JS中new一个对象的过程

1 创建空对象
   var   obj = {};
2 设置新对象的constructor属性为构造函数的名称设置新对象的__proto__属性指向构造函数的prototype对象
   obj.__proto__ = ClassA.prototype

3 使用新对象调用函数,函数中的this被指向新势力对象
     ClassA.call(obj)   //{}.构造函数()
4 将初始化完毕的新对象地址,保存到等号左边的变量中

注意:若构造函数中返回this或返回值是基本类型(number,string,boolean,null,ubdefined)的值,则返回新实例对象,若返回值是引用类型的值,则实际发返回值为这个引用类型

var   foo = "bar"
function test () {
   this.foo = "foo";
}
new   test();
console.log(this.foo)  //bar
consol.log(new test().foo)

instanceof 和typeof之间的区别

1 undefined,string,number,boolean属于简单的值类型,不是对象
2 数组,null,对象,函数都是对象,他们是引用类型

typeof "abc"   //string
typeof 123    //number
typeof  x      ///undefined
typeof    true  //boolean

console.log(function(){})   //function
typeof   []     //object
typeof   {}   //objct
typeof null   //object

注:简单的值类型用typeof就可以简单分辨清楚了。但是就是使用typeof来判断引用数据的类型并不准确,instanceof 就是判断一个对象是否是某一个构造函数的实例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值