<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>批量设置原型上的公有方法</title>
</head>
<body>
<script>
//1. 起一个别名
// function Fn() {
// this.x = 100;
// }
// var pro = Fn.prototype; //把原型指向地址付给pro
// pro.getX = function() {
// }
// var f1 = new Fn;
//2. 重构原型对象的方法 -- > 自己新开辟一个堆内存,然后替换掉
function Fn() {
this.x = 100;
}
Fn.prototype = {
constructor: Fn,
a: function() {
},
b: function() {
}
}
var f = new Fn;
//1. 只有浏览器天生给Fn.prototype开辟的堆内存里面才有constructor,而我们自己开辟的这个堆内存没有这个属性
//这样constructor指向就不在是Fn而是Object了
console.log(f.constructor); //-- > Object
//为了和原来的保持一致,我们需要手动的增加constructor指向
//2. 用这种方式给内置类增加公有的属性
// Array.prototype.unique = function() {
// }
// Array.prototype = {
// constructor: Array,
// unique: function() {
// }
// };
// console.dir(Array.prototype);
//这种方式会把之前已经存在于原型上的属性和方法替换掉,所以我们修改内置类的话,浏览器是给屏蔽掉的
var ary = [];
ary.sort();
</script>
</body>
</html>
原型扩展1.2.7
最新推荐文章于 2024-09-10 08:48:01 发布