// this 是代表本对象的意思, 如:
<Button onclick='func(this)'>Button</Button> // 这个 this 代表的就是这个 button
function func(element) {
// 可以直接对这个对象进行 *** 作
elementstylecolor = 'blue';
}
this就是原生的js,获取当前对象。你这里$()方法不过把它构造成了jquery对象而已。
继承结构比较复杂多样,
简单来说就是把父类的实例赋给子类的原型。
介绍最经典的一种继承方式
寄生组合式继承:
//父类
function SuperType(name){
thisname = name;
thiscolors = ["red","blue"];
}
//父类原型添加方法
SuperTypeprototypesayName = function(){
alert(thisname);
}
//子类
function SubType(name,age){
Supercall(this,name);//这里等于说用call函数去偷父类的实例属性
thisage = age;
}
inheritPrototype(SubType,SuperType);
//这里注意,给子类的原型添加属性要在继承之后,一面被覆盖
SubTypeprototypesayAge = function(){
alert(thisage);
};
//下面这个函数的作用是将父类的实例拿给子类的原型
//,并且把子类丢给原型的构造函数
function inheritPrototype(subType,superType){
var prototype = object(superTypeprototype);//这个方法是拷贝一个父类的实例
prototypeconstructor = subType;
subTypeprototype = prototype;
}
//拷贝一个父类的原型作用是避免在子类的原型中创建多余的属性
function object(superPrototype){
function F(){};
Fprototype = superPrototype;
return new F();
}
PS:原生js没学好,框架不能精通的。
PS的PS:楼主给分
这个问题问到js的精髓了。
在js中,万物皆对象,函数只是对象的一种。
js的this,指代着当前对象的自身(itself),但通过你的问题的内容,发现,你关注的地方并不单单在this关键词。
function a(value){
thisvalue =value;
alert(thisvlaue);
}
上面的这个函数语句,意味着,创建了名字为a,参数为value的函数对象:
这个函数对象有一个来自于参数的动态属性value;
这个函数对象还有一个返回值为void的window内置函数alert;
这个函数对象自身没有返回值(void)。
alert(new a(1)value);
上面的这个语句,意味着,新建一个参数为1的a对象,并把这个对象的value作为参数赋值给window的alert函数,并执行window的alert函数。
在上面的语句中,测试时,会出现两次警告框,且警告框的内容都是1,这是因为在新建a对象的时候,执行了一次alert,拿到a对象的value后,又执行了一次alert。
alert(windowa(3));
上面的这个语句,意味着,把3作为window对象的a函数的一个参数,执行a函数。
在上面的语句中,测试时,也会出现两次警告框,但是第一次是3,第二次就是undefined了,这是因为,windowa(3)执行的时候,会alert一下,内容就是3,alert()执行的时候,因为里面的windowa(3)没有返回值,所以alert的参数就是没有,所以就导致d出了一个“undefined”
function a(){
fucntion b(){}
return b;
}
new a()()
可以这么写(new a()())的原因是:
1、“new a()” ,这个是个对象创建过程,就是说,这样可以创建一个全新的函数对象。
2、第二个“()”,这个是个函数执行过程,就是说,加上一对“()”后,这个对象函数才开始执行。
a()b()
不可以这么写的原因是:
a()会让这个a函数对象执行后,返回的是一个名字为没有名字的空函数对象,这个空函数对象里面,并没有一个名字叫b的方法。
你如果想让上面的a里面的b函数顺利执行,可以参考下面的案例:
function a(){
function b(){alert(111)}
return b;
}
a()();//这样你就顺利的看到这个b函数执行了。
最后给你一个让你头晕的案例,呵呵。考虑一下是如何执行的,这个案例你完全搞明白后,基本上js的函数对象返回值问题,就不会再有了。
function a(){
thisb = function (){
return thisc = function(){
alert(111);
}
}
}
(new a()b())();
JS不知道jQuery方便实现
点击事件中,$(this)next(),获取当前标签同辈下一个元素
若想让后一个div显示和隐藏,$(this)next()show()或$(this)next()hide()
获得当前点击的a 标签的属性值,可以使用onclick方法来实现如下面实例:
<a id="test" href="#" onclick="alert(thisid+' ' + thishref);">ddd</a>
在标签中添加okclick方法,传递需要或取的参数值,如此来获取被点击的
a 标签的Id 或者Url。
以上就是关于javascript中onclick 中的this指当前什么东西全部的内容,包括:javascript中onclick 中的this指当前什么东西、jq中的$(this)也就是选择当前元素用源生js怎么表示、关于JS的THIS等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)