最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

有关于JS辅助函数inherit()的问题_基础知识

来源:动视网 责编:小采 时间:2020-11-27 21:08:14
文档

有关于JS辅助函数inherit()的问题_基础知识

有关于JS辅助函数inherit()的问题_基础知识:最近在阅读《JavaScript权威指南》(第六版)在第六章P122有这么一段代码: 代码如下:// 返回一个继承自原型对象proto的属性的新对象// 这里可以用到ES5的Object.create()函数function inherit(proto) {//proto是一个对象,但不能是nul
推荐度:
导读有关于JS辅助函数inherit()的问题_基础知识:最近在阅读《JavaScript权威指南》(第六版)在第六章P122有这么一段代码: 代码如下:// 返回一个继承自原型对象proto的属性的新对象// 这里可以用到ES5的Object.create()函数function inherit(proto) {//proto是一个对象,但不能是nul


最近在阅读《JavaScript权威指南》(第六版)在第六章P122有这么一段代码:

代码如下:
// 返回一个继承自原型对象proto的属性的新对象
// 这里可以用到ES5的Object.create()函数
function inherit(proto) {
//proto是一个对象,但不能是null
if(proto == null) throw TypeError();
if(Object.create) return Object.create(proto); //如果Object.create()存在,使用它
var t = typeof proto; //否则进一步检查
if(t!=='object' && t!=='function') throw TypeError();
var F = function() {}; // 定义一个空构造函数
F.prototype = proto; // 将其原型属性设置为proto
return new F(); // 使用F()创建proto的继承对象
}

很明显辅助函数的用途是创建一个继承父类原型的新对象

问题

在关于下面的这句判断时,一时无法理解

代码如下:
var t = typeof proto; //否则进一步检查
if(t!=='object' && t!=='function') throw TypeError();

我们的印象中原型对象应该是个Object或者直接是字面量,那么传递的参数类型会有“function”类型情况吗

理解

函数也是对象,也可以有自己的属性和方法。等等,这不是我们的静态属性和方法啊!这里是指把函数看成可以添加属性的对象

代码如下:
// 测试传递function类型
var func = function() {};
func.text = 'good work';
func.getText = function() {
return func.text;
};
console.log(typeof func); // 'function'
// 传递function类型,返回以func为原型的新对象
var subFunc = inherit(func);
console.log(subFunc.getText()); // 输出:'good work'

好吧,一个证明说明。原来是可以传递'function'类型的

文档

有关于JS辅助函数inherit()的问题_基础知识

有关于JS辅助函数inherit()的问题_基础知识:最近在阅读《JavaScript权威指南》(第六版)在第六章P122有这么一段代码: 代码如下:// 返回一个继承自原型对象proto的属性的新对象// 这里可以用到ES5的Object.create()函数function inherit(proto) {//proto是一个对象,但不能是nul
推荐度:
标签: 辅助 js 问题
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top