- 主题:prototype
className.prototype._sendQuery = function(){..}
className._sendQuery = function(){..}
作为类成员方法
这两者有何区别呢
--
FROM 218.81.98.*
前者 className 是一个类型,_sendQuery 是它的类成员方法;
后者 className 是一个对象,_sendQuery 是它的一个属性
或者如果用静态语言来打比方的话
前者 _sendQuery 是 dynamic 方法,要用得写 new className(..)._sendQuery(...)
后者 _sendQuery 是 static 方法,要用得写 className._sendQuery(...)
【 在 SJTUIT (consultant) 的大作中提到: 】
: className.prototype._sendQuery = function(){..}
: className._sendQuery = function(){..}
: 作为类成员方法
: ...................
--
FROM 221.221.212.0
后者不能作为class?
className._sendQuery = function(){..}
与
className = function(){
tihs._sendQuery = function(){..}
}
是一样的
而后者显然是可以作为class被new的吧?
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 前者 className 是一个类型,_sendQuery 是它的类成员方法;
: 后者 className 是一个对象,_sendQuery 是它的一个属性
: 或者如果用静态语言来打比方的话
: ...................
--
FROM 218.81.98.*
又一想想通了
className._sendQuery = function(){..}
在className被new时时不会查询到的
除非把_sendQuery写到className内部
而要写在外面而又想被实例化到
刚好prototype链可以满足之
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 前者 className 是一个类型,_sendQuery 是它的类成员方法;
: 后者 className 是一个对象,_sendQuery 是它的一个属性
: 或者如果用静态语言来打比方的话
: ...................
--
FROM 218.81.98.*
如果是方法,写在里面会有问题,每个生成的对象的那个方法都是独立的,
所以推荐混合型定义,属性写里面,方法写外面,用prototype定义
如果直接写就成静态方法了,不需要new就可以用了,当然new出来的也能用
推荐《JavaScript高级程序设计》,用了一章讲对象的创建,一章讲对象的继承
看完了之后就不会有这样的疑问了
【 在 SJTUIT (consultant) 的大作中提到: 】
又一想想通了
className._sendQuery = function(){..}
在className被new时时不会查询到的
除非把_sendQuery写到className内部
而要写在外面而又想被实例化到
刚好prototype链可以满足之
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 前者 className 是一个类型,_sendQuery 是它的类成员方法;
: 后者 className 是一个对象,_sendQuery 是它的一个属性
: 或者如果用静态语言来打比方的话
: ...................
--
FROM 123.113.122.*