Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
273 views
in Technique[技术] by (71.8m points)

请问如何理解JavaScript中函数是也是一种特殊的对象?

我们可以在函数上定义属性和方法(通过属性访问器),那么我可以把函数理解成一个可执行(通过圆括号调用foo())的对象吗?也就是功能比对象更强大一点

function foo () {}
foo.a = "abc"
console.log(foo.a) // 1
foo.bar = function(){
    console.log(this.a) // 1
}

那么对象可以通过添加某个属性实行执行功能吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
  1. 构造函数通常是把属性写在其原型上,方便子类或实例共享,当然,有些属性会直接作为构造函数自身的属性,方便外部调用,类似Java的静态方法,但是这类属性不能被子类或实例直接继承;
  2. 调用对象的属性时确实可以通过 this 关键字访问对象自身,函数也是对象,故函数也有此性质,但不代表其方法就能访问其函数体内的变量;
  3. 函数是对象的子集;
  4. 尽我所知,不可以,至少要给个函数体,而创建函数体貌似绕不开创建函数这一步。

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...