构造函数 对象的原型 函数对象的函数指定this调用


创建对象

字面量方式创建
var p1 = {
name :"张三",
age : 22,
run:function()
  {
     console.log(this.name + "跑步去了!")
  }
}
通过new Object 创建对象 
var p2 = new Object()
//里面的Object为空 需要手动添加
p2.name= "张三"
p2.age = 22
p2.run = function()
{
}

使用构造函数创建对象,适用于批量创建对象
构造函数的声明和普通函数相同  命名规范是大驼峰命名法
function People(name , age)
{ 
   this.name  = name 
   this.age = age 
   this.speak = function()
   {
   console.log("我是" + this.name)      
   }
}

var p3 = new People("张三",22)
p3 . sex = "男"  手动添加的属性 只有p3这个对象用有
p3.speak()

//可以通过构造函数 创建多个同类对象
var p4 = new People("李四",22)
p4.speak()



对象的原型

   function People(name)
   {
   this.name = name
   //不建议直接将函数写在构造函数中, 不然 每创建一个都要单独保存一个函数 浪费内存
   this.say = function()
   {
     console.log(this)
   }
   }
     var p1 = new  People("张三")
这种方法比较实用  
People.prototype.say = function()
{
    console.log(this)
}
p1.say()

函数对象的函数指定this调用

function f1(){
//这个时候的this不在指向window,而是指向了"hello" 字符串对象
 console.log(this)
 //arguments  函数内局部变量,保存就是传入的参数
 console.log(arguments)
}
//函数对象中 call()函数 作用就是通过指定的this调用本函数,在函数中this指向指定的第一个参数对象,第一个参数就是指定的对象,从第二个开始就是调用函数需要传递的参数
f1.call("hello",1,2,3)

//函数对象中, apply()函数, 作用就是通过指定的this调用本函数,在函数中this指向指定的对象,第二个是参数数组,放的就是调用函数需要的参数
f1.apply(true)

//函数对象中.bind()函数,作用返回一个新的函数,这个新的函数和原来的函数业务代码一致,新函数执行的时候指向bind时绑定的对象
var f2 = f1.bind("绑定this")
f2()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值