注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云淡风轻

云淡风轻近午天,傍花随柳过前川。

 
 
 

日志

 
 

诡异的js

2006-08-27 12:37:22|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
据说,js不是面向对象(Object Oriented)的语言,而是基于对象(Object based)的。js里,所有的东西都是对象。没有类和实例的分别。不过js里也可以写面向对象的程序。虽然class是js里的保留字,不过并不能用class做任一件事。比如
class A
是错的。
var class
也是不行的。
当然
// class
是可以的。
js里用一个function可以定义函数和类。其实所谓的函数或类,都是被看做一个对象的。

下面是我知道的实现类继承的几个方法:
1. prototype
A={a: 100, b:200, c:function(){return this.a} }

B=function(){
}
B.prototype=A
b=new B()
alert(b.c())    // 100

2. Function.call() or Function.apply()
这两个方法其实是一样的,只是参数传递的格式不一样而已。
F=function(){
this.a=100
this.b=200
this.c=function(){return this.a}
}
S=function(){
F.call(this)
}
son = new S()
alert(son.c())

其实js里,this关键字的使用也是很诡异离奇的,变量的作用域也相当奇怪。js只是看起来和c/c++/java像,骨子里是很不一样的。虽然学了一段时间了,不过还是很多不懂。js是一门上手很容易,没有编程基础的人也可以会用,但是要真正理解它,却是很难的。
这里胡吹了几句,希望路过的高人能指点一下。
  评论这张
 
阅读(218)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017