js中函数的内部方法和属性指的什么?call()方法是谁的?每个对象都有这个方法吗?

js中函数的内部方法和属性指的什么?call()方法是谁的?每个对象都有这个方法吗?怎么理解call()length这样系统里面带的方法和属性,他们是什么对象的,new的... js中函数的内部方法和属性指的什么?call()方法是谁的?每个对象都有这个方法吗?怎么理解call() length 这样系统里面带的方法和属性,他们是什么对象的,new的对象可以使用他们是因为继承还是什么愿意 展开
 我来答
育知同创教育
2018-06-28 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
arguments对象:函数内部对象,传入函数中所有参数的集合,类数组对象
属性:callee 指针,指向拥有这个arguments对象的函数 作用:解耦
例子:迭代
function factorial(num) {
if(num<=1){
return 1;
}else{
return ( num*arguments.callee(num-1));
}
}

console.log(factorial(4));//24

this对象:函数内部对象,引用的是函数执行的环境对象 在全局作用域执行函数时this为全局对象(window)
window.color='red';
var o={color:'blue',};

function sayColor(){alert(this.color);};

sayColor(); //red
o.sayColor=sayColor;
0.sayColor();//blue 看this引用的谁

caller属性:指向调用当前函数的函数 保存着调用当前函数的函数的引用
function a(){
b();
}

function b(){
alert(b.caller)
}

b();//输出a函数体

apply()和call(): 作用:修改函数this的指向(修改上下文),拓展函数的作用域,对象与方法解耦 区别:传参 apply(要修改的指向,参数数组/arguments对象)
call(要求改成的指向,arg1,arg2...)
例子:哑巴说话
function PersonWei() {
}
PersonWei.prototype={
country:'Wei',
sayCountry:function () {
console.log('I am form '+this.country);
},
}
var xuShu={
country:'Shu',
}
var caoCao=new PersonWei();
caoCao.sayCountry();// I am form Wei
caoCao.sayCountry.call(xuShu); //I am form Shu

不知道这样做合不合理,定义了一个表示魏国人的构造函数PersonWei(),它具有属性:country和方法sayCountry(),然后实例了一个caoCao(曹操),我们想要帮xuShu(徐庶)说出自己的国家:    caoCao.sayCountry.call(xuShu);让caoCao的this指向变为xuShu(借尸还魂?脑洞大开,应该就是鬼上身,借用你的身体来实现他的行为),这时候this.conutry 中的this指向的就是xuShu对象了,因此结果是 I am form Shu
任然是我2012
2016-10-09 · TA获得超过313个赞
知道小有建树答主
回答量:343
采纳率:52%
帮助的人:73.5万
展开全部

首先js中函数是个特殊的对象,它也有方法和属性。简单点的来个例子

            function abc(){
                this.aaa=123;
                this.say=function(){
                    console.log(this.aaa);
                }
            }

这个例子里边,aaa就是函数abc的属性,而say就是方法。

call是window对象的方法,而js所有的对象都是window的对象,所以就继承了call。call的作用就是继承,继承另一个对象的方法。new的作用就是建立一个对象的副本,同时继承原型的方法。

追问
js中原型到底是什么,主要用来对象的共享吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式