87,903
社区成员
发帖
与我相关
我的任务
分享
<script type="text/javascript">
// subClass子类,superClass父类
function extend(subClass,superClass){
// 新建一个空的类
var F = function(){};
// 父类的prototype赋给空类
F.prototype = superClass.prototype;
// 空类实例赋给子类的prototype
subClass.prototype = new F();
// 这句很重要,子类的constructor指向子类本身,
// 之前是指向F类的
subClass.prototype.constructor = subClass;
// 申明一个superclass变量用来访问父类
subClass.superclass = superClass.prototype;
// 如果父类的prototype指向了Object的prototype,
// 那么父类的构造函数就指向它自己
// alert(superClass.prototype.constructor == Object.prototype.constructor)
if(superClass.prototype.constructor == Object.prototype.constructor) {
superClass.prototype.constructor = superClass;
}
}
var Person = function(name) {
this.name = name;
}
Person.prototype = Object.prototype;
var Man = function() {}
extend(Man,Person);
var p = new Person();
var m = new Man();
alert(Person.prototype.constructor === Person)
</script>
Array.prototype.constructor = String;
var arr = ['c','b','a'];
alert(arr.constructor===String);
arr.sort();
alert(arr);