js中的原型及原型链
2020-11-11 Javascript
面向对象 #
typeof #
- 检测数据类型 typeof返回的都是字符串
- 基本数据类型 number string boolean undefined symbol
- 引用类型 null {} [] /&$/ Date => object
隐式原型 #
proto #
每个对象都有一个proto属性,指向创建该对象的函数的prototype。
Object.prototype__proto__
指向的是null
自定义函数的prototype #
自定义函数的prototype的proto指向的就是Object.prototype
自定义函数 #
instanceof #
- instanceof运算符的第一个参数是一个对象,第二个参数一般是一个函数
- instanceof的判断规则是: 沿着对象的__proto__这条链来向上查找找,如果能找到函数的prototype则返回true,否则 返回false
测试题 #
function Foo() {
getName = function () {
console.log(1);
}
return this;
}
Foo.getName = function () {
console.log(2);
}
Foo.prototype.getName = function () {
console.log(3);
}
var getName = function () {
console.log(4);
}
function getName() {
console.log(5);
}
Foo.getName();
getName();
Foo().getName();
getName();//1
new Foo.getName();
new Foo().getName();
new new Foo().getName();
// 2 4 1 1 2 3 3
function Foo() {
getName = function () {
console.log(1);
}
return this;
}
Foo.getName = function () {
console.log(2);
}
Foo.prototype.getName = function () {
console.log(3);
}
var getName = function () {
console.log(4);
}
function getName() {
console.log(5);
}
Foo.getName();
getName();
Foo().getName();
getName();//1
new Foo.getName();
new Foo().getName();
new new Foo().getName();
// 2 4 1 1 2 3 3
版权属于: vincent
转载时须注明出处及本声明
Tags:# Javascript