- 主题:javascript 中,函数的原型对象 是啥?
js是基于对象的,prototype相当于一个附加在方法上的作用域对象,this指向这个作用域对象,用new构造会创建新的作用域,用call或apply会用当前作用域对象代替目标方法的作用域对象。
--
FROM 111.204.241.*
理解javascript是基于对象的,这个就不难理解。
因为基于对象,所以才有原型链,变量、方法是挂接在对象上的,在方法中的直接体现就是this的指向,函数默认this指向的对象在浏览器中是window,window默认挂接全局变量和方法,而prototype就是指向对象的API,这样可以将函数的指向对象更换为其他对象,比如可以
var a = 1;
function asd(){
alert(this.a);
}
asd();//这时候this指向window
asd.prototype.s = function(){
this.a = 2;
alert(this.a);
};
var z = new asd(); //构造之后this就指向新的作用域,这时候函数的this为undefined
z.s(); //这时候是2
【 在 zhanghaoX 的大作中提到: 】
: 那某个函数的原型对象到底是什么?具体的
--
修改:zzjyingzi FROM 111.204.241.*
FROM 111.204.241.*
哪?
【 在 ottffsse 的大作中提到: 】
: 你这有语法错误。
:
--
FROM 111.204.241.*
噢,对,this不应该出现在属性里···
【 在 ottffsse 的大作中提到: 】
: 你这有语法错误。
:
--
FROM 111.204.241.*
再看一下,输出三个值。
【 在 ottffsse 的大作中提到: 】
: 试一下不就知道了?这么明显的。
:
--
FROM 111.204.241.*
不要挑语病···说得不能很明确的解释理解的和代码的。
我这有事,抽出的5分钟时间···
【 在 ottffsse 的大作中提到: 】
: 因为基于对象,所以才有原型链,变量、方法是挂接在对象上的,在方法中的直接体现就是this的指向,函数默认this指向的对象在浏览器中是window,window默认挂接全局变量和方法,而prototype就是指向对象的API,这样可以将函数的指向对象更换为其他对象,比如可以
: var a = 1;
: function asd(){
: ...................
--
FROM 111.204.241.*