码迷,mamicode.com
首页 > 编程语言 > 详细

语言精粹心得

时间:2015-12-10 21:40:23      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

给类型增加方法

Function.prototype.method=function(name,func){
  //if(!this.prototype[name]){
    // this.prototype[name]=func;
  //return this;
  //}
   if(typeof this.prototype[name]!=="function"){
     this.prototype[name]=func;
  return this;
  }
};
//提取整数
Number.method("integer",function(){
  return Math[(this>0)?"floor":"ceil"](this);
});
console.log((-3.3333).integer());

//去掉前后空格
String.method("trim",function(){
    return this.replace(/^\s+|\s+$/,"");
});
console.log(("  1214    ").trim());

返回值 

一个函数总是返回一个值,如果没有指定返回值,则返回undefined;如果函数以在前面加上new前缀的方式来调用,且返回值不是一个对象,则返回this(改新对象)

假值

null false undefined "" 0 NaN

//创建一个用原对象作为原型的对象
if(typeof Object.beget!=="function"){
Object.beget=function(o){
var F=function(){};
F.prototype=o;
return new F();
};
}

this的值取决于调用模式

1、方法调用模式

当一个函数被保存为对象的一个属性时,我们称之为一个方法。当一个方法被调用时,this被绑定到改对象。如果一个调用表达式包含一个属性存取表达式时,那么它被当作一个方法来调用

2、函数调用模式

当一个函数并非一个对象的属性是,那么它被当作一个韩式来调用,当函数以此模式调用时,this被绑定到全局对象

如果内部函数想访问外部函数的this可以这样做

myObject.double=function(){

var that=this;

var helper=function(){

that.value=add(that.vaue,that.value);

}

3、构造器调用模式

如果在一个函数前面带上new 来调用,那么将创建一个隐藏连接到该函数的prototy成员的新对象,同时this将会被绑定到那个新对象上

4、apply调用模式

函数可以拥有方法;apply方法让我们构建一个参数数组并用其去调用函数。它也允许我们选择this的值,方法接收两个参数,第一个是被绑定给this的值,第二个就是一个参数数组

helper();

 

}

语言精粹心得

标签:

原文地址:http://www.cnblogs.com/yhf286/p/5037208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!