为什么不能在原型函数中为“ this”分配新值?

为什么不能在原型函数中为“ this”分配新值?,第1张

为什么不能在原型函数中为“ this”分配新值?

不允许

this
在函数内分配值。假设您 可以 执行此 *** 作,并且您的代码如下所示:

Array.prototype.foo = function() {    return this = [1, 2, 3];}var a = ["beans", "rice"];a.foo();// a now points to an object containing [1, 2, 3]

现在,如果您这样做:

var a = ["beans", "rice"];var b = a; // b refers to the same object as ab.foo();// what does b refer to now? how about a?

.foo()
对象调用函数的行为不应更改对象的 身份
。如果
b
突然开始引用一个不同的对象而不是
a
仅仅因为调用了某种方法,这对于调用者来说将非常混乱。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5640982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存