JS高级语法基础(二)

继承 call()

call()的作用:
1、调用函数:
比如fn()与fn.call()等价
2、修改this指向:
比如fn.call(o)将this的指向改为指向对象o
3、传递参数:
比如fn(o,x,y)中,x和y就是传递给fn的实参

借用构造函数继承父类属性:组合继承

function Son(uname,age){
	Father.call(this,uname,age);//this指构造函数的this实例,即new Son()
	}

借用原型对象继承父类方法

var obj = new Fn();
obj.prototype = {
	constructor: Fn
	};//可以直接将一个实例对象赋值给原型对象,但会覆盖原来的原型对象,所以必须使constuctor指向原来的构造函数

es5中的新增方法

数组方法

在数组中,对数组进行迭代(遍历)的方法有:forEach()、map()、filter()、some()、every()。

array.forEach(function(current,index,arr){});//其中,current指当前的值,index是索引,arr指向数组对象本身
arrar.filter(function(current,index,arr){});//过滤器,用来帅选数值,例如return current >= 10等条件
arr.some(function(current,index,arr){});//查找是否含有特定元素,返回一个布尔值,并且在找到第一个满足条件的元素时就停止遍历

forEach()和some()的区别就是前者需要完全遍历,而后者满足条件就停止,效率更高。

字符串方法

trim()方法,主要作用是删除字符串两端的空白字符,比如搜索框输入验证。

对象方法

1、Object.keys()—>获取对象自身所有的属性,返回属性名组成的数组;
2、Object.defineProperty(obj,‘property’,{})—>定义新的属性或者修改原来的属性。其中,obj表示要操作的对象;property表示要增加或者修改的属性;{}包含的内容那个是属性的内容,它又包含了4个参数:value——值;writable——是否可以重写;enumerable——是否允许遍历;configerable——是否可以被删除,以及特性是否可以被修改,即writable、enumerable是否可以重新定义为true | false。

函数的定义

function fn(){};
new Function('参数'{函数体});

函数的调用

fn();
fn.call();//普通函数的调用
//--------------------
class Fn(){
	fn: function(){
	}};
Fn().fn;//对象
//--------------------
function Fn{};
new Fn();//构造函数
//--------------------
btn.onclick = function(){};//绑定事件
//--------------------
setInterval(fn,timeout);//定时器函数
//--------------------
(fn(){})();//立即执行函数的调用

关于this

this指向

1、普通函数——window
2、对象方法——对象
3、构造函数——实例对象
4、绑定事件——绑定事件对象
5、定时器函数——window
6、立即执行函数——window

改变this指向

1、call——>fn.call(‘指向’,‘参数’);
2、apply——>fn.apply(‘指向’,’[参数]’),调用函数改变this指向,还可以利用数学内置对象求最大值,比如:Math.max.apply(null,arr)。
3、bind——>fn.bind(‘指向’,参数’’),不会立即调用函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值